HOME >> Tips >> Oracle Tips >> SQL

インデックスを格納する表領域を移動する(ALTER INDEX)

 
文書番号:20252




インデックスを格納する表領域を変更(移動)するSQLです。


ALTER INDEX <インデックス名> REBUILD TABLESPACE <表領域名>

【例】

・インデックス「IDX_EMP_01」を表領域「INDEX_SPACE」へ移動します。


ALTER INDEX IDX_EMP_01 REBUILD TABLESPACE INDEX_SPACE;


既に作成済みのインデックスをまとめて移動したいときにひとつずつ移動するのは大変です。
インデックスの一覧を取得して構文を作ると楽かもしれません。

以下のSQL内の<表領域名>を実際に移動したい表領域名に変更して実行します。

SELECT 'ALTER INDEX '||INDEX_NAME||' rebuild tablespace <表領域名>;'
FROM USER_INDEXES;
今格納されている表領域を指定する場合。

SELECT 'ALTER INDEX '||INDEX_NAME||' rebuild tablespace <移動する先の表領域名>;'
FROM USER_INDEXES
WHERE TABLESPACE_NAME = '<今格納されている表領域>'