这次讲解一下收集统计信息常用的存储过程
收集统计信息类:
一、dbms_stats.gather_table_stats存储过程
This procedure gathers table and column (and index) statistics. It attempts to parallelize as much of the work as possible, but there are some restrictions as described in the individual parameters.
SQL> desc dbms_stats.gather_table_stats;
Parameter Type Mode Default?
---------------- -------- ---- --------
OWNNAME VARCHAR2 IN --所有者的姓名
TABNAME VARCHAR2 IN --要分析的表名
PARTNAME VARCHAR2 IN Y --要分析的分区名称
ESTIMATE_PERCENT NUMBER IN Y --采样的比例
BLOCK_SAMPLE BOOLEAN IN Y --是否块分析
METHOD_OPT VARCHAR2 IN Y --分析的方式
DEGREE NUMBER IN Y --分析的并行度
GRANULARITY VARCHAR2 IN Y --分析的粒度
CASCADE BOOLEAN IN Y --是否分析索引
STATTAB VARCHAR2 IN Y --使用的性能表名
STATID VARCHAR2 IN Y --性能表的标识
STATOWN VARCHAR2 IN Y --性能表的所有者
NO_INVALIDATE BOOLEAN IN Y --是否有验证游标的关系
STATTYPE VARCHAR2 IN Y
FORCE BOOLEAN IN Y --强制分析,即使表被锁定
除了owner、tabname之外,其他的参数都有默认的值,比如,我们分析t表,同时分析索引我们就可以执行以下语句:
SQL> exec dbms_stats.gather_table_stats(user,'T',cascade => true);
PL/SQL procedure successfully completed
如果想要知道某个参数当前的默认值,可以使用dbms_stats.get_param来获得。
SQL> select dbms_stats.get_param('METHOD_OPT') from dual;
DBMS_STATS.GET_PARAM('METHOD_O')
--------------
收集统计信息类:
一、dbms_stats.gather_table_stats存储过程
This procedure gathers table and column (and index) statistics. It attempts to parallelize as much of the work as possible, but there are some restrictions as described in the individual parameters.
SQL> desc dbms_stats.gather_table_stats;
Parameter Type Mode Default?
---------------- -------- ---- --------
OWNNAME VARCHAR2 IN --所有者的姓名
TABNAME VARCHAR2 IN --要分析的表名
PARTNAME VARCHAR2 IN Y --要分析的分区名称
ESTIMATE_PERCENT NUMBER IN Y --采样的比例
BLOCK_SAMPLE BOOLEAN IN Y --是否块分析
METHOD_OPT VARCHAR2 IN Y --分析的方式
DEGREE NUMBER IN Y --分析的并行度
GRANULARITY VARCHAR2 IN Y --分析的粒度
CASCADE BOOLEAN IN Y --是否分析索引
STATTAB VARCHAR2 IN Y --使用的性能表名
STATID VARCHAR2 IN Y --性能表的标识
STATOWN VARCHAR2 IN Y --性能表的所有者
NO_INVALIDATE BOOLEAN IN Y --是否有验证游标的关系
STATTYPE VARCHAR2 IN Y
FORCE BOOLEAN IN Y --强制分析,即使表被锁定
除了owner、tabname之外,其他的参数都有默认的值,比如,我们分析t表,同时分析索引我们就可以执行以下语句:
SQL> exec dbms_stats.gather_table_stats(user,'T',cascade => true);
PL/SQL procedure successfully completed
如果想要知道某个参数当前的默认值,可以使用dbms_stats.get_param来获得。
SQL> select dbms_stats.get_param('METHOD_OPT') from dual;
DBMS_STATS.GET_PARAM('METHOD_O')
--------------