次の手順が可能かどうか、およびこれがどれほど速いかを知りたいです。
- テーブル A に part1 という名前のパーティションを作成します。
- 表 B にパーティション part1 をドロップ
- テーブル A のパーティション part1 をテーブル B にインポートする
実際に可能であれば、例を挙げていただけますか? または、私が見ることができるリソースはありますか?
テーブルの構造はまったく同じであることに注意してください。
次の手順が可能かどうか、およびこれがどれほど速いかを知りたいです。
実際に可能であれば、例を挙げていただけますか? または、私が見ることができるリソースはありますか?
テーブルの構造はまったく同じであることに注意してください。
コマンドで同様のことができますALTER TABLE ... EXCHANGE PARTITION
。これにより、単一のパーティションが同じ構造を持つテーブルと交換されます。
ちょっとした例:
/* Partitionned Table Creation */
SQL> CREATE TABLE table_a (
2 ID NUMBER PRIMARY KEY,
3 DATA VARCHAR2(200)
4 )
5 PARTITION BY RANGE (ID) (
6 PARTITION part100 VALUES LESS THAN (100),
7 PARTITION part200 VALUES LESS THAN (200)
8 );
Table created
/* Swap table creation */
SQL> CREATE TABLE swap_table (
2 ID NUMBER PRIMARY KEY,
3 DATA VARCHAR2(200)
4 );
Table created
SQL> INSERT INTO swap_table SELECT ROWNUM, 'a' FROM dual CONNECT BY LEVEL <= 99;
99 rows inserted
SQL> select count(*) from table_a partition (part100);
COUNT(*)
----------
0
part100
これにより、パーティションが遷移テーブルと交換されますswap_table
。
SQL> ALTER TABLE table_a EXCHANGE PARTITION part100 WITH TABLE swap_table;
Table altered
SQL> select count(*) from table_a partition (part100);
COUNT(*)
----------
99