处理锁住的统计信息

之前的实验讲到了按照SCHEMA收集统计信息的时候,不会收集统计信息锁住的表。
接下来实验一下,如果统计信息锁住了,如何进行处理。
C:\Users\lenovo>sqlplus s1/s1@abc


SQL*Plus: Release 11.2.0.1.0 Production on 星期四 3月 26 14:17:08 2015


Copyright (c) 1982, 2010, Oracle.  All rights reserved.




连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> set linesize 9999 pagesize 9999
SQL> select table_name from user_tables;


TABLE_NAME
------------------------------
T1
T2




SQL> create table t3 as select *  from user_objects;


表已创建。


SQL> insert into t3 select *  from t3;


已创建3行。


SQL> /


已创建6行。


SQL> /


已创建12行。


SQL> /


已创建24行。


SQL> commit;


提交完成。


SQL> select table_name from user_tables;


TABLE_NAME
------------------------------
T1
T2
T3
SQL> select table_name,stattype_locked from user_tab_statistics ;


TABLE_NAME                     STATTYPE_L
------------------------------ ----------
T1
T2
T3
--此时SCHEMA下没有被锁住的表,所有的表都可以进行收集。
SQL> exec dbms_stats.gather_schema_stats('S1');


PL/SQL 过程已成功完成。


SQL> select table_name,last_analyzed from user_tables;


TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
T1                             2015/03/26 14:23:37
T2                             2015/03/26 14:23:37
T3                             2015/03/26 14:23:37


--这个时候锁住T3表的统计信息
SQL> exec dbms_stats.lock_table_stats('S1','T3');


PL/SQL 过程已成功完成。


SQL> select table_name,stattype_locked from user_tab_statistics ;


TABLE_NAME                     STATTYPE_L
------------------------------ ----------
T1
T2
T3                             ALL


SQL> select table_name,stattype_locked from user_tab_statistics ;


TABLE_NAME                     STATTYPE_L
------------------------------ ----------
T1
T2
T3                             ALL


然后再按照SCHEMA收集统计信息。
SQL> exec dbms_stats.gather_schema_stats('S1');


PL/SQL 过程已成功完成。


SQL> select table_name,last_analyzed from user_tables;


TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
T1                             2015/03/26 14:29:47
T2                             2015/03/26 14:29:47
T3                             2015/03/26 14:23:37
--发现T3的统计信息并没有变化,LAST_ANALYZED还是上次的时间。


--我们把T3表的统计信息解锁。
SQL> exec dbms_stats.unlock_table_stats('S1','T3');


PL/SQL 过程已成功完成。


SQL> select table_name,stattype_locked from user_tab_statistics ;


TABLE_NAME                     STATTYPE_L
------------------------------ ----------
T1
T2
T3


SQL> exec dbms_stats.gather_schema_stats('S1');


PL/SQL 过程已成功完成。


SQL> select table_name,last_analyzed from user_tables;


TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
T1                             2015/03/26 14:31:04
T2                             2015/03/26 14:31:04
T3                             2015/03/26 14:31:04

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

转载于:http://blog.itpub.net/26084062/viewspace-1474477/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值