table statistics lock

今天在检查刚接手的DB的AWR报告时发现一个SQL Gets很大,于是进行tunning,看了一眼user_tables,发现这个表的last_analyzed居然是2007年的,很奇怪,这个表应该是在不断的进行修改,并且,数据库是Oracle 10g,自动收集统计信息的任务也没有关闭,为什么没有更新统计信息呢?

查看dba_tab_modification表,也没有发现任何有关于这个表的记录,奇了

不管他,直接收集统计信息,这下发现问题了

[@more@]

SQL> exec dbms_stats.gather_table_stats(user,'XXX',method_opt => 'for all indexed columns',cascade => true,degree => 2);

begin dbms_stats.gather_table_stats(user,'XXX',method_opt => 'for all indexed columns',cascade => true,degree => 2); end;

ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: at "SYS.DBMS_STATS", line 13056
ORA-06512: at "SYS.DBMS_STATS", line 13076
ORA-06512: at line 2

统计信息不知道被谁给锁了。汗

解锁,收集统计信息

SQL> exec dbms_stats.unlock_table_stats(user,'XXX');

PL/SQL procedure successfully completed

SQL> exec dbms_stats.gather_table_stats(user,'XXX',method_opt => 'for all indexed columns',cascade => true,degree => 2);

PL/SQL procedure successfully completed

一般来讲,没有正式系统会lock statistics的,不知道这个服务器为啥进行了lock,而且,因为这个原因导致了很大的性能问题。

可以查看select table_name,stattype_locked from user_tab_statistics

为啥Oracle不把这个字段加到user_tables里呢?这种情况看来还真的比较少,很少有人查这个,再汗一个

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19423/viewspace-1048810/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/19423/viewspace-1048810/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值