別のテーブルスペースに移動するために、サイズが300GBの10億レコードのテーブルがあります。私の質問は次のとおりです。Altertable moveよりもDBMS_REDEFINITION(Online redefinition)パッケージを使用する利点は何ですか。どちらが速く、なぜですか?テーブルを移動するいずれの方法でも、テーブルへのDMLアクセスが可能ですか?
前もって感謝します
これら2つの方法は大きく異なります。
Alter table mytable move mytablespace
すべてのデータブロックを新しいテーブルスペースに移動します。その間、テーブルはDML用にロックされます。
DBMS_REDEFINITIONを使用すると、目的のテーブルスペースに新しいテーブルを作成し、それらの間でデータを同期できます[〜#〜]オンライン[〜#〜]。同期が終了すると、テーブル名が切り替わります。インデックス、制約、パーティション、特権などを含む新しいテーブルを自分で作成する必要があるため、DBMS_REDEFINITIONに注意する必要があります。
テーブルを別のテーブルスペースに移動するときにDMLで利用できるようにすることが重要でない場合は、より簡単なALTER TABLE MOVEコマンドを使用できます。
http://docs.Oracle.com/cd/B28359_01/server.111/b28310/tables007.htm#ADMIN11667