在Oracle中,当收集表的统计信息时应该注意哪些问题

0    371    1

Tags:

👉 本文共约1952个字,系统预计阅读时间或需8分钟。

目录

    关于收集统计信息需要注意以下几点:

    ① 对于数据量不大的OLTP类型的系统,建议使用自动收集统计信息,并对一些特殊的大表写JOB定时收集统计信息。如果是数据量很大的OLAP或者DSS系统,那么建议DBA自己写JOB脚本来收集统计信息。

    ② 在导入大量数据后应及时收集统计信息后才能进行相关的后续业务处理(包括查询和修改),否则可能会由于实际数据量和统计信息里记录的数据量存在巨大差异而导致CBO选择错误的执行计划。

    ③ 全局临时表默认不能收集统计信息,在生成执行计划时采用动态采样比较好。

    ④ 对于某些新上线或新迁移的系统,建议进行全库收集一次统计信息。

    ⑤ 建议及时对包含日期型字段的表收集统计信息,避免出现谓词越界现象。

    ⑥ 统计信息收集作业采样比例:对于Oracle 11g及其以上的版本收集统计信息的采样比例建议采用DBMS_STATS.AUTO_SAMPLE SIZE。如果是Oracle 10g,那么建议将采样比例的初始值设为30%,然后根据目标SQL的实际执行情况再做调整。

    ⑦ 系统统计信息:如果系统的硬件环境发生了变化,那么建议要额外收集一次系统统计信息。

    ⑧ 内部对象统计信息:在明确诊断出系统已有的性能问题是因为X$表的内部对象统计信息不准引起的,这个时候就应该收集X$表的内部对象统计信息,其它情形就不要收集了。

    ⑨ 表的大小、是否并行:若表很大,而系统空闲,则可以使用并行来收集统计信息。

    ⑩ 表是否分区:若是分区表则建议收集全局的统计信息并且收集数据量有变更的单个分区(加GRANULARITY和参数并设置属性INCREMENTAL)的统计信息。

    ⑪ 是否收集索引的统计信息:一般情况下都应该收集索引的统计信息。

    本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
    AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
    验证码:
    获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

    标签:

    Avatar photo

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表回复