Oracle 10g New Features: Changes to dbms_stats


With Oracle Database 10g, there are some new arguments available for the dbms_stats package subprograms. Those parameters are as follows:

  • granularity
  • degree


This parameter is used in subprograms such as gather_table_stats and gather_schema_stats. This parameter indicates the granularity of the statistics that you want to collect, particularly for partitioned tables. As an example, you can gather the global statistics on a partitioned table, or you can gather global and partition-level statistics. It has two options. They are: AUTO and GLOBAL AND PARTITION.

  • When the AUTO option is specified, the procedure determines the granularity based on the partitioning type. Oracle collects global, partition-level, and sub-partition level statistics if sub-partition method is LIST. For other partitioned tables, only the global and partition level statistics are generated.

  • When the GLOBAL AND PARTITION option is specified, Oracle gathers the global and partition level statistics. No sub-partition level statistics are gathered even it is composite partitioned object.


With this parameter, you are able to specify the degree of parallelism. In general, the degree parameter allows you to parallelize the statistics gathering process. The degree parameter can take the value of auto_degree.

When you specify the auto_degree, Oracle will determine the degree of parallelism automatically. It will be either 1 (serial execution) or default_degree (the system default value based on number of CPUs and initialization parameters), according to the size of the object. Take care if Hyper Threading is used, as you will have less computational power than Oracle assumes.

DML Table Monitoring Changes

With Oracle Database 10g, the statistcis_level[i] initialization parameter functions as a global option for the table monitoring mechanism. This mechanism overrides the table level MONITORING clause. In other words, the [NO]MONITORING clauses are now obsolete. The [i]statistcis_level parameter was available in 9i.

If the statistcis_level parameter is set to BASIC, the monitoring feature is disabled. When it is set to TYPICAL (which is the default setting) or ALL, then the global table monitoring is enabled.

These changes are aimed at simplifying operations and also making them consistent with other related statistics. The modification monitoring mechanism is now enabled by default, and users of the GATHER AUTO or STALE feature of dbms_stats no longer have to enable monitoring explicitly for every table under the default settings.

[NOTE: You can still use the [NO]MONITORING clauses in the {CREATE | ALTER } TABLE statements as well as the alter_schema_tab_monitoring and alter_database_tab_monitoring procedures of the dbms_stats package, but these clauses and procedures are now considered as no operation. They execute without giving any error, but have no effect.]

[NOTE: There is also no table monitoring for temporary tables.]

The above is an excerpt from the bestselling Oracle10g book Oracle Database 10g New Features by Mike Ault, Madhu Tumma and Daniel Liu, published by Rampant TechPress.