アットウィキロゴ

索引の管理

Bツリー索引

  • 行を削除しても、索引エントリを論理的に削除するだけである
  • 削除した行が使っていた領域は、ブロック内のすべてのエントリが削除されるまでは、新しいエントリに使うことはできない
  • 索引ブロックにPCTFREEの指定よりも少ない領域しかなくても、そこに新しいエントリが追加されることがある、PCTFREEの影響を受けるのは索引の作成時のみ

索引の管理

  • 索引の再構築
    ALTER INDEX 索引名 REBUILD
    [TABLESPACE 表領域名]
    [PCTFREE 空き領域割合]
    [INITRANS トランザクションスロット初期数]
    [MAXTRANS トランザクションスロット最大数]
    [STORAGE ( [INITIAL 初期エクステントサイズ]
               [NEXT 増分エクステントサイズ]
               [MINEXTENTS 作成時エクステント数]
               [MAXEXTENTS {最大エクステント数 | UNLIMITED}]
               [PCTINCREASE エクステントサイズ拡大率] )
    [LOGGING | NOLOGGING]
    [REVERSE | NOREVERS]
    
    • 索引を別の表領域に移動する
    • 削除済みのエントリを取り除いて領域の使用率を改善する
    • 標準索引を逆キー索引に変更する
  • 索引のオンライン再構築
    ALTER INDEX 索引名 REBUILD ONLINE;
    
    • Oracle8iから実表に対する操作をしながら索引の再作成ができる
    • 一時表には索引を再作成できない
    • パーティション索引全体を再作成することはできない
    • 未使用領域の割り当て解除は実行できない
    • 索引のPCTFREEパラメータ値を変更することはできない

未使用索引の監視

ALTER INDEX 索引名 MONITORING USAGE;
  • 監視情報はV$OBJECT_USAGEビューに収集される
  • V$OBJECT_USAGEビューのUSED列に、使用されていればYES、一度も使用されていなければNOが表示される
  • 上記SQLが実行されるたびにV$OBJECT_USAGEビューがリセットされる

索引に関する情報の取得

  • DBA_INDEXES
    • INDEX_TYPE列 : 索引が標準B*ツリー索引かビットマップ索引か逆キー索引かを示す
最終更新:2008年03月11日 22:32