IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    读书笔记-《Best Practices for Gathering Optimizer Statistics with Oracle Database 19c》

    Jimmy He发表于 2024-05-14 10:02:54
    love 0

    调整SET_TABLE_PREFS,按照表来单独设置,减低stale的百分比,比如变化1%就收集统计信息

    调整 ESTIMATE_PERCENT的比例,不用AUTO_SAMPLE_SIZE,而用更低的采样比例

    High-frequency Optimizer Statistics Collection
    自定义搜集统计信息的job,设置自定义的time interval

    Real-time Statistics
    19c有实时统计信息,在display_cursor中可以看到 – dynamic statistics used: statistics for conventional DML
    配置参数:optimizer_real_time_statistics ,21c的参数backport到19c RU 10

    分区表:
    用Incremental Statistics,注意时长场景,时间窗口移动。

    “Out of Range” 场景:
    在range 分区表中比较常见,应对方法:DBMS_STATS.COPY_TABLE_STATS(注意,临时解决方案,还是需要搜集详细统计信息)

    另外,还可以通过分析数据增长或者变化的趋势,手动设置统计信息:DBMS_STATS.SET_COLUMN_STATS

    GATHERING STATISTICS MORE QUICKLY
    Using Parallelism
    大对象的并发度指定:PARALLEL_THREADS_PER_CPU X CPU_COUNT

    开启concurrent,多个表,多个分区一起搜集。concurrent的并行度取决于JOB_QUEUE_PROCESSES的参数,ERP可能默认禁用,因为ERP部署要求设置参数_optimizer_autostats_job=false

    变动快的表:
    /*+ dynamic_sampling(2) */
    或者set OPTIMIZER_ADAPTIVE_FEATURES = TRUE 并且set OPTIMIZER_DYNAMIC_SAMPLING = 2 (12c中)

    GTT表:
    19c可以在不同session设置共享统计信息(优先使用本session的,如果本session没有,则尝试看是否有共享的GTT统计信息)

    online statistics gathering:
    12c之后,当DBMS_STATS.GATHER_TABLE_STATS的 options => ‘GATHER AUTO’时,在bulk load和direct load中,会自动搜集

    固定统计信息:
    DBMS_STATS.GATHER_FIXED_OBJECTS_STATS

    可以使用优化器统计信息顾问(Optimizer Statistics Advisor)监控和分析统计信息收集任务。该工具可以帮助识别和纠正统计信息收集中的问题,确保统计信息的准确性和及时性。



沪ICP备19023445号-2号
友情链接