收集统计信息(二) 之 dbms_stats

本文详细介绍了Oracle中收集统计信息的存储过程,如dbms_stats.gather_table_stats,dbms_stats.gather_schema_stats以及dbms_stats.gather_index_stats。讨论了关键参数如采样比例、分析样式、并行度和分析粒度的影响,并提供了参数设置的实践建议,以优化SQL性能。
摘要由CSDN通过智能技术生成
这次讲解一下收集统计信息常用的存储过程

收集统计信息类:

一、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')
--------------
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值