У меня проблема с производительностью при подключении 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
Каждая из этих таблиц превышает 20000 записей, и это действительно вызывает проблемы с производительностью. Я побежал, и это заняло больше 6 минут, поэтому я отменил его!
Есть ли способ увеличить производительность этого заявления?
Какие индексы у вас есть на обеих таблицах? Что говорит план выполнения? – peterm
Проверяйте индексы во всех полях в разделе where в обеих таблицах! – Anshuman
В худшем случае, без индексов в любой таблице, каждая из 20 000 строк в T1 должна сравниваться с 20 000 строк в T2, в результате чего рабочий набор строк 400MM. Чтобы установить, что эта проблема стоит за экраном, а не перед ним, дайте некоторое описание доступных индексов. –