0
点赞
收藏
分享

微信扫一扫

统计信息相关(一)

Oracle统计信息是优化器进行评估SQL的各种可能执行路径的Cost,从而指导优化器选择合适的执行计划。

一、Oracle的自动统计信息收集任务

Oracle每晚有自动任务对全库进行统计信息收集(默认周末是凌晨6点,持续20小时;工作日22点,最多持续4小时)

如果是周末为业务高峰的话,需要调整周六日的开始时间和持续时间:

关闭某一天的统计信息任务:

自动收集统计信息任务需要满足下面条件:

(1)statistics_level为TYPICAL或者ALL

(2)dba_autotask_client <auto optimizer stats collection> status值为ENABLED

 可以使用如下语句关闭统计信息自动收集任务:

重新开启:

二、手动进行统计信息收集 

分区级:

表级:

schema级:

数据库级:

索引级:

使用 DBMS_STATS.GET_PREFS来得到默认的参数,常用的参数有:

参考文档:DBMS_STATS

使用DBMS_STATS.SET_GLOBAL_PREFS手动修改某些参数值:

恢复参数的默认值:


三、其他

1、绑定/解绑表的统计信息

有时自动收集统计信息任务执行时某张表被truncate或者当时的统计信息不是通常值,导致执行计划错误,需要手动绑定这张表的统计信息

2、查询表的历史统计信息

查看某张表/索引统计信息收集的历史:

3、恢复表在某历史时刻的统计信息

4、查看统计信息最长的保留时间:This function returns oldest timestamp wherestatistics history is available

 

举报

相关推荐

0 条评论