alter index rebuild or create index
星期天, 六月 1st, 2008看了HANSON老大文章简单回顾如下:
alter index rebuild 和create index都可以用来重建索引
alter index rebulid 相对create index 有以下优点:
1 重建索引时的IO相对CREATE INDEX少,主要来源以下部分的减少,原索引的叶子取代表做为数据来源,索引块一般为表块少,其次是愿叶子接点索引条目已经是有序,减少了排序工作
2 alter index rebulid online ,在重建过程中DML操作可以正常进行
相同点是:
1 都可以开启并行
2都可以使用NOLOGGING 来减少重建过程中产生的REDO
3 都可以使用computer statitics ,避免重建后在收集统计信息
重建后一般来说会带来以下好处
1 索引大小变小,也就是因为叶子节点的减少
2 索引扫描时查询的物理索引块减少
如果来决定是否应该重建可以使用 alter index valiate structure 命令查看indes_stats.pct_used是否超过50%
还有要注意的就是重建索引一般不能降低索引高度。还有降低clustering_factor的关键在于重建表里的数据。只有将表里的数据按照索引列排序以后,才能切实有效的降低clustering_factor。但是如果某个表存在多个索引的时候,需要仔细决定应该选择哪一个索引列来重建表。
