我有SQL Server連接性能問題,有多列比較。SQL Server JOIN性能
SELECT T1.* FROM T1, T2
WHERE T1.LASTNAME = T2.LASTNAME AND
T1.FIRSTNAME = T2.FIRSTNAME AND
T1.MIDDLENAME = T2.MIDDLENAME AND
DAY(T1.DoB) = T2.DOBDay AND
MONTH(T1.DoB) = T2.DOBMonth
這些表中的每個表都超過20,000條記錄,這確實會導致性能問題。 我跑了它,它需要超過6分鐘,所以我取消了!
有沒有辦法提高該聲明的性能?
你對這兩個表有什麼指數?執行計劃說什麼? – peterm
檢查兩個表的where子句中所有字段的索引! – Anshuman
在最壞的情況下,在任何一個表上都沒有索引,T1中的每行20,000行需要與T2中的20,000行進行比較,從而產生一組40000行的工作集。要確定這個問題是在屏幕後面而不是在它之前,請提供一些可用索引的描述。 –