2

1 日に数十億行を格納するデータベースがあります。これは、同じサイトの HA 用に RAC を有効にし、クロスサイト用にアクティブなデータガードを備えた 11G Oracle データベースです。ブロック サイズを 16k から 8k に変更する必要がありました。これはオンラインでの変更ではないため、テーブルの名前を月のデータに合わせて変更し、新しいテーブルを作成する必要がありました。次に、元のテーブルから新しいテーブルにデータを取得する必要があります。

ダイレクト パス挿入はテーブルをロックし、通常の挿入は多くの RAC 待機を引き起こします。他のプロセスが新しいテーブルにデータを書き込むのを(迅速に)停止することなく、大量のデータをあるテーブルから別のテーブルに移動するためのベストプラクティスを誰かが持っているかどうか疑問に思います

4

2 に答える 2

1
CREATE TABLE new_table_name
TABLESPACE table_space_name
NOLOGGING
PARALLEL 4
AS SELECT * FROM existing_table_name ;
于 2013-03-16T19:54:08.533 に答える
0
create table <new table name> as <existing table name>;   
// its create a clone table with data.


create table <new table name> as <existing table name> 
where 1==2 <any false condition>;                        
// its create a clone table without data.
于 2014-12-31T12:12:22.547 に答える