future2012lg

博客园 首页 新随笔 联系 订阅 管理

2013年8月5日 #

摘要: Oracle对表做全表扫描的时候 ,会扫描完HWM以下的数据块。如果某个表delete(delete操作不会降低高水位)了大量数据,那么这时对表做全表扫描就会做很多无用功,扫描了一大堆数据块,最后发现块里面居然没有数据。通常,在对表做了大批量delete操作之后,就应该马上降低表的高水位,可以使用shrink命令或者altertabletable_namemove降低表的高水位。在降低表的高水位之后,表上面的索引会失效,因为表的rowid更改了,这个时候需要rebuild索引。如何求出段的高水位?其实很简单,首先对表收集统计信息,然后查询DBA_TABLES的blocks,以及empty_bl 阅读全文
posted @ 2013-08-05 22:39 future2012lg 阅读(768) 评论(0) 推荐(0) 编辑