2

次の手順が可能かどうか、およびこれがどれほど速いかを知りたいです。

  1. テーブル A に part1 という名前のパーティションを作成します。
  2. 表 B にパーティション part1 をドロップ
  3. テーブル A のパーティション part1 をテーブル B にインポートする

実際に可能であれば、例を挙げていただけますか? または、私が見ることができるリソースはありますか?

テーブルの構造はまったく同じであることに注意してください。

4

1 に答える 1

2

コマンドで同様のことができます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
于 2010-03-23T15:45:56.400 に答える