我正在尋找任何建議來優化SAS程序中的以下PROC SQL語句。涉及的兩個表格每個包含約500萬條記錄,運行時間約爲46個小時。優化SQL UPDATE語句所需的建議。使用兩百萬條記錄表
該聲明正在尋找更新「舊」表的「新」版本。如果對於「PK_ID」的「舊」表沒有列出「3RD_ID」和「CODE」的值,而在「新」表中列出了「PK_ID」,則記錄列「3RD_ID」和「CODE」的值。
感謝您的任何建議...(代碼格式化真的下面!對於某些原因,我的空間進行展示,縮進...)
PROC SQL _METHOD;
UPDATE NEW_TABLE AS N
SET NEW_2ND_ID=(SELECT 2ND_ID FROM OLD_TABLE AS O
WHERE N.PK_ID=0.PK_ID
AND N.2ND_ID<>O.2ND_ID
AND O.3RD_ID IS NULL
AND O.CODE IS NULL
AND N.3RD_ID IS NOT NULL
AND N.CODE IS NOT NULL
AND N.2ND_ID IS NOT NULL)
WHERE N.3RD_ID IS NOT NULL
AND N.PK_ID IS NOT NULL
AND N.CODE IS NOT NULL
AND N.2ND_ID IS NOT NULL;
QUIT;
在PK_ID,2ND_ID和3RD_ID上的兩個表上都有簡單的索引,以及兩者上都有一個複合索引,包含所有這三個索引。 – whitespy9 2010-01-28 14:35:07
當您找到「工作」解決方案時讓我知道 – Pentium10 2010-01-28 17:35:20