Я с низкой производительностью запросов, а иногда он пришел к ошибке «Не удается выделить место для объекта" Темп рабочего стола»Низкая производительность запросы
У меня есть 2 таблицы и 1 вид. Первые две таблицы имеют левое соединение, и последнее представление будет выполнять вспомогательный запрос. Ниже приведен пример запроса.
SELECT a.*
FROM Table1 a LEFT JOIN Table2 b ON a.ID = b.ID
WHERE a.ID (SELECT ID
FROM View1).
Вышеуказанный запрос выполняется очень медленно. НО, когда я использовал таблицу #temp, она становится быстрее.
SELECT ID
INTO #Temp
FROM View1
SELECT a.*
FROM Table1 a LEFT JOIN Table2 b ON a.ID = b.ID
WHERE a.ID IN (SELECT ID
FROM #Temp)
Может кто-нибудь объяснить, почему первое заявление sql происходит очень медленно? и любезно дать мне совет, как добавить новый индекс?
Примечание: первый запрос не может быть изменен или изменен. Я использовал только второй запрос, чтобы показать моей команде, что если мы помещаем 3-ю таблицу во временную таблицу и используем ее, она работает быстрее.
ли у вас какие-либо индекс в любой из колонки? по крайней мере, в 'ID'? – Crazy2crack
@ Crazy2crack, да. Я помещаю индекс в внешние ключи (Таблица 2 и Таблица 3) – Chris
@ Crazy2crack, Table3 не является таблицей своего вида. Я уже сменил тело. – Chris