Oracle 11.2.0.2.0 64bit , Linux AS 5.4
select * from dba_tab_modifications WHERE table_name='EDIBTO850_PO1PID' ;
P201001 是当前分区 (半年一个分区, P201001 表示201107~201201)
TABLE_OWNER TABLE_NAME PARTITION_NAME SUBPARTITION_NAME INSERTS UPDATES DELETES TIMESTAMP
DFMS EDIBTO850_PO1PID 9,350 0 0 09-30-2011 00:01:41
DFMS EDIBTO850_PO1PID P201107 81,446 0 0 06-30-2011 23:48:06
DFMS EDIBTO850_PO1PID P201201 373,270 0 0 09-29-2011 23:55:43
select * from dba_tables where table_name='EDIBTO850_PO1PID' ;
整个表的 LAST_ANALYZED: 2011-09-29 22:09:21
select * from dba_indexes where table_name='EDIBTO850_PO1PID' ;
一个是局部分区索引 EDIBTO850_PO1PID_TIME, LAST_ANALYZED: 2011-09-29 22:09:37 ,
一个是全局非分区索引 EDIBTO850_PO1PID_PK ,LAST_ANALYZED 2011-09-29 22:09:42
select * from ALL_TAB_PARTITIONS where table_name='EDIBTO850_PO1PID' ;
表分区中当前时间的区段的 LAST_ANALYZED 2011-09-24 6:09:41,
其他区段 LAST_ANALYZED 都是 2011-06-30 14:20:47 左右
select * from ALL_IND_PARTITIONS where index_name = 'EDIBTO850_PO1PID_TIME' ;
局部分区索引当前时间的分区的 LAST_ANALYZED 是 2011-09-24 6:09:47 ,
局部分区索引其他非当前时间的分区 LAST_ANALYZED 是 2011-06-30 14:21:00
以下说法是否正确 ?
1. 整个表的DML操作达到数据的10% (和上次分析统计相比), 所以整个表在2011-09-29 22:09 统计分析,同时也统计表
相关的所有Index (不管是否分区或本地,全局) 。所以他们的统计分析时间是一致的。
2. 而table中的分区是独立的, 每个分区的DML操作达到这个分区的数据10% (和上次分析统计相比)时, 这个分区也会做分
析统计, 同时对应的局部分区索引也随之做统计分析 , 所以我们看到的表分区和他们对应的本地分区索引分析时间是一致的 。
3. dba_tab_modifications 表中PARTITION_NAME 为空的那行代表什么 ?
4. DML 操作达到数据的 10% , 很多地方解释为更新的行数占总行数的10%, 说法不是太严谨, 做过简单测试, 更新的行次
占总数据行数的10% 就会统计 (类似 人数/人次) 。
select * from sys.dba_tab_modifications where table_owner='DFMS' and table_name='AAA' ; AAA有 24笔记录, updates, inserts, deletes 值都是 0
在AAA上修改5行不同记录
执行 EXEC DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO ; (系统不会立刻更新相关记录基表,这里手工执行)
select * from sys.dba_tab_modifications where table_owner='DFMS' and table_name='AAA' ;
同样的方式在AAA 上修改同一条记录6次, 发现在 dba_tab_modifications 中 updates 值增加了6 .
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-708549/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-708549/
本文讨论了 Oracle 数据库中表分区、索引分析的时间一致性,包括表整体及分区、索引的分析时间,以及如何通过 `dba_tab_modifications` 表判断 DML 操作对统计分析的影响。
778

被折叠的 条评论
为什么被折叠?



