0
我有兩個相同的模式,在通過數據庫鏈接連接的不同數據庫上。Oracle插入使用FLASHBACK查詢
Schema_1: Source Schema. **Rows being inserted at rapid rate.**
Schema_2: Target Schema.
將行快速插入到Schema_1(源模式)中。
我運行在源模式的SQL如下:
Insert into [email protected]_LINK select * from Table_1
這種說法需要幾分鐘的時間。
現在我改變聲明如下(使用閃回查詢)
Insert into [email protected]_LINK select * Table_1 as of timestamp to_timestamp (to_timestamp (date));
該查詢在幾秒鐘內完成。
爲什麼這麼大的差異?
您是否檢查查詢返回多少條記錄:'select * from Table_1'和'select * Table_1 as timestamp to_timestamp(to_timestamp(date));'? – kpater87
這些有很多不同。閃回查詢是最簡單的。它將查看閃回數據以從本地數據庫返回數據。但是,通過鏈接插入將不得不(1)通過全表掃描讀取表中的所有數據(2)通過某個未指定的網絡將數據傳輸到某個遠程系統(3)通過適當的事務將數據寫入遠程表控制/日誌記錄/重做/等等。對我來說,閃回查詢速度更快是不言而喻的。 – unleashed
數據庫鏈接如何影響性能差異?另外,是否真的是'to_timestamp(to_timestamp('?這對我來說看起來是錯誤的... –