下面的查詢需要太多的時間,最有可能的。SQL查詢「不」條款的執行「不中」的使用需要,因爲太長
你可以提出任何改進的地方?
SELECT vcode,
vname,
1014 AS fid
FROM testcodes co
WHERE co.vcode NOT IN (SELECT dict.vcode
FROM datadictionary dict
WHERE dict.fid = 1014)
有關結構的一點是。 vCode,vName是varchar 和testCodes和DataDictionary具有相同的結構。
我搜索這個問題,發現左連接都不可能解決這個問題? (爲什麼它做得更好,如何做到)?
可有人引導,如果它能夠提高???
至於爲什麼它的速度更快:在'LEFT JOIN'語法告訴查詢優化器如何聯接表的更直接的方式,而'NOT IN(SELECT ...)'是更靈活,但需要從更多的工作數據庫引擎。 – geekosaur 2011-03-16 07:30:02
即使沒有索引。查詢運行DAMN FAST。我寫的查詢花了一分多鐘甚至僅僅幾千條記錄(在數據字典中幾乎10K,在測試代碼中3K) – Umer 2011-03-16 07:39:58
順便說一句,感謝這樣的編輯,我總是會混淆如何縮進那些sql腳本:) – Umer 2011-03-16 07:41:19