<pre name="code" class="sql">Oracle的dbms_stats.gather_schema_stats只会收集优化器统计信息,不会检测表的记录是否存在行迁移和行链接。
要检测表的记录是否存在row chain,需要用到ORACLE
早先一点的命令:ANALYZE TABLE
值得注意的是:数据字典 USER_TABLES.CHAIN_CNT的值是包含
了行迁移和行链接的数目.请看ORACLE的解释: CHAIN_CNT* Number of rows in the table that are chained from one data block to another, or which have migrated to a
new block, requiring a link to preserve the old ROWID 也就是说这个字段的值是行迁移和行链接的总数量,至于要知道具体行迁
移有多少,行链接又是多少,ANALYZE TABLE这个命令没办法得到,只有通过DUMP BLOCK来区分(方法复杂,故没有去做).但首先我们要知道行迁移和行链接是两个不同的概念:
(1)行迁移: ORACLE一个BLOCK的DEFAULT SIZE是8K,事实上,一个BLOCK不可以存储8K的数
据.一个BLOCK可以存储多少数据,由PCTFREE,PCTUSED参数控制(对于以前的手工管理的表空间而言)
PCTFREE:是指BLOCK保留空闲空间的百分比,用于UPDATE。对于已经插入到BLOCK的行而言,
后面的UPDATE操作有可能使行的长度增加,PCTFREE就是用于容纳增加的那部分长度而保留的空闲空间。如果UPDATE时PCTFREE再也