关闭

对象统计信息锁定的解决办法(ORA-20005/ORA-38029)

3519人阅读 评论(0) 收藏 举报
分类:

转自:http://blog.itpub.net/29867/viewspace-730902/

解决办法很明确,就是解锁。
可以从两个层面去处理:
A、解锁Schema
DBMS_STATS.UNLOCK_schema_STATS(user);

B、解锁单个对象
1)先查出被锁定的表select table_name from user_tab_statistics where stattype_locked is not null;
然后再解锁对象
exec dbms_stats.unlock_table_stats(user,’表名’);
2)也可直接生成sql脚本
select ‘exec dbms_stats.unlock_table_stats(”’||user||”’,”’||table_name||”’);’ from user_tab_statistics where stattype_locked is not null;
这里不在生成的sql中用动态的user是为了让执行者明确知道到底是解锁哪个schema下的表,防止误操作。

不过,你要特别注意,Oracle为什么会要锁定住统计信息?
一般而言,这是为了稳定执行计划,因为在Oracle 10g以上,Oracle默认会自动收集统计信息,要想锁住统计信息,请使用LOCK_SCHEMA_STATS、LOCK_TABLE_STATS包。

推荐方案B中生成标本的方法。

1
0
查看评论

对象统计信息锁定的解决办法(ORA-20005/ORA-38029)

   对象统计信息锁定的解决办法(ORA-20005/ORA-38029) 2012-10-25 18:15 205人阅读 评论(0) 收藏 举报 from :http://space.itpub.net/29867/viewspace-730...
  • zjuji
  • zjuji
  • 2014-05-29 15:33
  • 1464

ORA-38029

<br />ORA-38029: 对象统计信息已锁定<br />随即查了一下——<br />-bash-3.00$ oerr ora 38029<br />38029, 00000, "object statistics are locked...
  • Blaider
  • Blaider
  • 2010-07-27 11:52
  • 3181

ORA-38029 & ORA-20005

<br />从10g导出了一致表到本地的11g环境中做测试。导入后习惯的去收集一下统计信息。遇到了ORA-20005和ORA-38029错误。<br /> <br />/home/oracle$oerr ora 38029<br />3802...
  • lwei_998
  • lwei_998
  • 2011-05-24 13:10
  • 3429

错误处理 ORA-20005: object statistics are locked (stattype = ALL)

本地测试环境,遇到错误如下:   SQL> exec dbms_stats.gather_table_stats('AA','BB');   begin dbms_stats.gather_table_stats('AA...
  • edwzhang
  • edwzhang
  • 2011-12-01 14:21
  • 2924

ORA-20005: object statistics are locked (stattype = ALL)

今天从9i中exp后imp 至10g中,因为要修改栏位长度,所以先imp 加参数rows=n ; 再imp资料 ignore=y 报错 ORA-20005: OBJECT STATISTICS ARE LOCKED (STATTYPE = ALL)。 从DBA_TAB_STATIS...
  • mikean
  • mikean
  • 2013-09-10 22:39
  • 1276

oracle11g查看自动收集统计信息是否开启

oracle11g查看自动收集统计信息是否开启SQL> select client_name,status from dba_autotask_client;CLIENT_NAME Sta...
  • xqzhang8
  • xqzhang8
  • 2017-05-25 21:54
  • 1021

通过锁定统计信息来锁定执行计划

今天在群里面看到一个消息。提问是这样的  他认为oracle 10g很痛苦,随着数据量的变化,sql的执行计划在不停的改变,导致同一个存储过程,时间点不同,执行效率就不同. 他的问题是有没有好的方法让执行计划不改变,个人认为是锁定统计信息。 如何锁定统计信息,下面来分布说明: 1...
  • colin_liu2009
  • colin_liu2009
  • 2011-11-15 12:03
  • 2443

Oracle统计信息的锁定

场景1、锁定统计信息,即禁止搜集表的统计信息: exec dbms_stats.lock_table_stats('','T1',cascade=>TRUE); select table_name from user_tab_statistics where...
  • hzhvv
  • hzhvv
  • 2016-06-22 16:58
  • 482

对象统计信息锁定的解决办法(ORA-20005/ORA-38029)

转自:http://blog.itpub.net/29867/viewspace-730902/解决办法很明确,就是解锁。 可以从两个层面去处理: A、解锁Schema DBMS_STATS.UNLOCK_schema_STATS(user);B、解锁单个对象 1)先查出被锁定的表selec...
  • fm0517
  • fm0517
  • 2015-11-19 15:15
  • 3519

SAP之ORA-20005: object statistics are locked

在SAP的数据库优化中,当尝试收集一个数据表的数据时,遇到如下错误:     SQL> exec dbms_stats.gather_table_stats('SAPSR','QIN');    ...
  • saming2010
  • saming2010
  • 2013-07-23 14:21
  • 560
    个人资料
    • 访问:1127269次
    • 积分:12154
    • 等级:
    • 排名:第1442名
    • 原创:206篇
    • 转载:139篇
    • 译文:3篇
    • 评论:180条
    博客专栏