[统计信息系列6] 数据字典统计信息

(一)数据字典统计信息查看

数据字典统计信息用来描述数据字典基表(如TAB$和IND$等)、数据字典基表上的索引以及数据字典基表的列的详细信息,与普通表的、索引、列的统计信息没有什么区别。


(二)数据字典统计收集和删除

Oracle会在自动收集统计信息任务中收集数据字典的统计信息,当然,我们也可以手动收集。

方法一:对于数据字典的统计信息,可以使用如下语句收集和删除统计信息:

DBMS_STATS.GATHER_DICTIONARY_STATS:收集

DBMS_STATS.DELETE_DICTIONARY_STATS:删除

方法二:数据字典表也是表,也可以使用对表的收集方法收集数据字典的统计信息

DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'SYS')

DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SYS',tabname=>'TAB$',CASCADE=>true)


(三)案例:数据字典统计信息引起的查询缓慢

背景:在11.2.0.4的数据库中,某天执行如下语句速度非常慢,每次执行时间在150S以上,

select * from v$lock WHERE TYPE IN('TM','TX');

原因:统计信息不准确,导致走了错误的执行计划;

解决方案:重新收集统计信息,具体操作如下:

SQL> exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS(); 
SQL> exec DBMS_STATS.DELETE_DICTIONARY_STATS; 
SQL> exec DBMS_STATS.GATHER_DICTIONARY_STATS;

然后再查询 v$lock,最终1s内出现结果。


【完】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值