怎么样快速重建或移动索引

怎么样快速重整索引
  通过rebuild语句,可以快速重整或移动索引到别的表空间
  rebuild有重建整个索引数的功能,可以在不删除原始索引的情况下改变索引的存储参数
  语法为
  alter index index_name rebuild tablespace ts_name
  storage(......);

  如果要快速重建整个用户下的索引,可以用如下脚本,当然,需要根据你自己的情况做相应修改
  SQL> set heading off
  SQL> set feedback off
  SQL> spool d:\index.sql
  SQL> SELECT 'alter index ' || index_name || ' rebuild '
  ||'tablespace INDEXES storage(initial 256K next 256K pctincrease 0);'
  FROM all_indexes
  WHERE ( tablespace_name != 'INDEXES'
  OR next_extent != ( 256 * 1024 )
  )
  AND owner = USER
  SQL>spool off

  另外一个合并索引的语句是
  alter index index_name coalesce

  这个语句仅仅是合并索引中同一级的leaf block,消耗不大,对于有些索引中存在大量空间浪费的情况下,有一些作用。

posted @ 2008-10-30 17:12  jimeper  阅读(498)  评论(0编辑  收藏  举报