我在Oracle 10g中發生了一個INSERT查詢,該查詢在「dblink」SQL * Net消息事件中停滯不前。它看起來像:來自Oracle中dblink等待事件的SQL * Net消息
INSERT INTO my_table (A, B, C, ...)
SELECT A, B, C, ... FROM [email protected]_system;
我沒有看到任何my_table
除了鎖從插入我試圖做一個。在[email protected]_system
上的SELECT查詢完成時沒有任何麻煩,當它自己運行。我只在嘗試執行INSERT時遇到此問題。
有人知道這裏會發生什麼嗎?
UPDATE SELECT在單獨運行時返回約1.557分鐘的4857行。在我決定殺死它之前,INSERT運行了一個多小時的等待消息。
UPDATE 我在我的方法中發現一個錯誤。我正在使用日期範圍來限制結果。我僅在測試SELECT時使用的日期範圍在link_table上運行的最後一個OraStats之前,但測試INSERT時使用的日期範圍是在link_table上運行的最後一個OraStats之後。所以,這讓我誤以爲INSERT存在問題。我不是很科學的做這件事;我的錯。
'SELECT'是否僅僅是一個沒有謂詞的表?還是它在做聯接和過濾器?對於獨立的'SELECT'和'INSERT ... SELECT'查詢計劃是否相同? –
你抓到我了。有幾個連接,但都在同一個dblink上。我如何查看查詢計劃? – Paul