INSERT INTO table3
SELECT
tbl1.pk_1, tbl1.pk_2, tbl2.pk_3, tbl1.pk4
FROM
table1 tbl1, table2 tbl2
WHERE
tbl1.pk_1 = 'root' and
NOT EXISTS
(SELECT 1 FROM table3 tbl3
WHERE tbl3.pk_1 = tbl1.pk_1 and tbl3.pk_2 = tbl1.pk_2 and tbl3.pk_3 = tbl2.pk_3 and tbl3.pk_4 = tbl1.pk_4)
;
我的SQL語句看起來是這樣的。 table1和table3有超過1000000行,table2有100行。這個SQL語句非常慢。完成需要超過100秒。有什麼辦法可以改善它嗎?如何提高NOT EXISTS在Oracle的性能
更好的去MERGE語句。 – San
你能在所有三張表上顯示你有什麼索引和限制嗎? –
還有,就是tbl1'和'tbl2'故意'之間的交叉聯接?我覺得有一個缺少連接謂詞... –