web-dev-qa-db-ja.com

Online RedefinitionとAlter table move tablespaceを使用したOracleの別のテーブルスペースへのテーブルの移動

別のテーブルスペースに移動するために、サイズが300GBの10億レコードのテーブルがあります。私の質問は次のとおりです。Altertable moveよりもDBMS_REDEFINITION(Online redefinition)パッケージを使用する利点は何ですか。どちらが速く、なぜですか?テーブルを移動するいずれの方法でも、テーブルへのDMLアクセスが可能ですか?

前もって感謝します

1
redtape2015

これら2つの方法は大きく異なります。

Alter table mytable move mytablespace

すべてのデータブロックを新しいテーブルスペースに移動します。その間、テーブルはDML用にロックされます。

DBMS_REDEFINITIONを使用すると、目的のテーブルスペースに新しいテーブルを作成し、それらの間でデータを同期できます[〜#〜]オンライン[〜#〜]。同期が終了すると、テーブル名が切り替わります。インデックス、制約、パーティション、特権などを含む新しいテーブルを自分で作成する必要があるため、DBMS_REDEFINITIONに注意する必要があります。

3
Nimrod

テーブルを別のテーブルスペースに移動するときにDMLで利用できるようにすることが重要でない場合は、より簡単なALTER TABLE MOVEコマンドを使用できます。

http://docs.Oracle.com/cd/B28359_01/server.111/b28310/tables007.htm#ADMIN11667

0
redtape2015