我在優化(應該是)簡單的SQL查詢時遇到了問題,但時間有嚴重問題。我已經寫了三次,但都沒有成功。這是我原本希望能夠工作的一個:INNER JOIN查詢
SELECT RSKADDR.*
FROM EDW_BASE.RCI_RISK_ADDRESS RSKADDR
INNER JOIN (
SELECT DISTINCT COVER_RISK_ID
FROM EDW_BASE.RCI_COVER_RISK_MASTER RSKMASTER
INNER JOIN
(SELECT DISTINCT CONTACT_ID, FOLLOW_UP_DATE
FROM EDW_STG.STG_CIM_SVOM03
WHERE OUTSTANDING = 1 AND QUEUE = 'CIM Update for Contact Address') ADDR_WF
ON RSKMASTER.CONTACT_CODE = ADDR_WF.CONTACT_ID
WHERE RSKMASTER.IS_STORNO != 1
AND RSKMASTER.PRODUCT_CODE = 'HOME'
AND ADDR_WF.FOLLOW_UP_DATE >= RSKMASTER.COVER_EFF_START_DATE
AND RSKMASTER.POLICY_STATUS_CODE = 'POLICY'
AND ADDR_WF.FOLLOW_UP_DATE <= RSKMASTER.COVER_EFF_END_DATE
) ACTVRSK
ON ACTVRSK.COVER_RISK_ID = RSKADDR.RISK_ID
第一個內部聯接中的代碼一直工作到最後。也就是說,第二個SELECT查詢(在第一個和主SELECT查詢的INNER JOIN查詢中)工作得很快,沒有問題。當我在主SELECT選擇查詢(選擇RSKADDR。*)的INNER JOIN中集成第二個SELECT查詢時出現問題
那麼看起來執行永遠不會結束!
我嘗試過其他的方式和同樣的結果:
SELECT RSKADDR.*
FROM EDW_BASE.RCI_RISK_ADDRESS RSKADDR
INNER JOIN EDW_BASE.RCI_COVER_RISK_MASTER RSKMASTER
ON RSKMASTER.COVER_RISK_ID = RSKADDR.RISK_ID
AND RSKMASTER.IS_STORNO != 1
AND RSKMASTER.PRODUCT_CODE = 'HOME'
AND RSKMASTER.POLICY_STATUS_CODE = 'POLICY'
INNER JOIN EDW_STG.STG_CIM_SVOM03 ADDR_WF
ON OUTSTANDING = 1 AND QUEUE = 'CIM Update for Contact Address'
AND RSKMASTER.CONTACT_CODE = ADDR_WF.CONTACT_ID
AND ADDR_WF.FOLLOW_UP_DATE >= RSKMASTER.COVER_EFF_START_DATE
AND ADDR_WF.FOLLOW_UP_DATE <= RSKMASTER.COVER_EFF_END_DATE
這是荒謬的。這是一個簡單的查詢,不能讓它工作。任何幫助將不勝感激。
你能分享你的模式和數據嗎 –
嗨,謝謝你的迴應。由於涉及隱私信息,遺憾的是無法共享數據。你想知道關於這個計劃的什麼?我能否幫助解釋,而不分享整個模式? – Ankhnesmerira
只能分享示例數據和模式不精確 –