按照SCHEMA收集统计信息后,查询了下是否SCHEMA下的统计信息都收集了。
结果发现绝大部分表的LAST_ANALYZED都变化了,只有几张表的LAST_ANALYZED时间还是没变。
感觉很奇怪,用的OPTION是GATHER,GATHER会处理所有的对象,怎么有些表的统计信息还是不变呢?
begin
dbms_stats.gather_schema_stats( ownname=> '"A"' , cascade=> DBMS_STATS.AUTO_CASCADE, estimate_percent=> dbms_stats.auto_sample_size, degree=> 16, no_invalidate=> DBMS_STATS.AUTO_INVALIDATE, granularity=> 'AUTO', method_opt=> 'FOR ALL COLUMNS SIZE AUTO',
options=> 'GATHER'
);
单独把表给拿出来
SQL> BEGIN
2 DBMS_STATS.GATHER_TABLE_STATS(ownname => 'A',
3 tabname =>'B1',
4 estimate_percent =>100,
5 method_opt =>'for all columns size AUTO',
6 no_invalidate =>FALSE,
7 degree => 8,
8 cascade =>TRUE);
9 END;
10 /
BEGIN
第 1 行出现错误:
ORA-20005:
object statistics are locked
(stattype = ALL)
ORA-06512: 在 "SYS.DBMS_STATS", line 24281
ORA-06512: 在 "SYS.DBMS_STATS", line 24332
ORA-06512: 在 line 2
SQL> set linesize 9999 pagesize 9999
SQL> select owner,table_name from DBA_tab_statistics where OWNER='A' AND
stattype_locked
is not null;
OWNER TABLE_NAME
------------------------------------------------------------ ------------------------------------------------------------
A B1
A B2
A B3
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员