Oracle
如何在 Oracle 上並行執行 INSERT INTO AS SELECT?
我有一個非常大的表 AUD$,我想將它複製到另一個具有相同結構 AUD_BACKUP 的空表。
INSERT INTO TEST_USER.AUD_BACKUP SELECT * FROM SYS.AUD$; COMMIT;
如何將並行用於 INSERT 和 SELECT ?我有能力執行 100 次並行。我在 Oracle db 12.2 上。
您應該使用直接路徑 INSERT。
對於 select,您可以在同一語句中使用 PARALLEL 提示。您可以使用不帶任何參數的 PARALLEL 或使用 PARALLEL(n)和 n 個執行緒。
如果您需要更多解釋,請告訴我。
解釋
我將嘗試向您展示一個 MySql 範例,因為我沒有找到可以幫助我執行 Oracle quary 的線上編譯器。
程式碼部分
創建兩個表
-- table 1 CREATE TABLE table1( int id integer, title varchar(100) ); -- table 1 backup CREATE TABLE backup_table1( int id integer, title varchar(100) );
插入
-- insert data into table1 INSERT INTO table1 (id, title) VALUES (1, "hello world!");
-- table1_backup INSERT INTO backup_table1 (id, title) SELECT id, title FROM table1;
輸出
SELECT * FROM backup_table1;
id title 1 hello world!
參考