У меня есть старый SQL Server 2014 Express, который я хотел обновить до SQL Server 2017 Enterprise.
Я установил его на ту же машину и переместил одну из баз данных (через резервную копию -> восстановление).
Затем я выполнил этот запрос на обоих серверах:
SELECT T1.FileName, T2.BatchId
FROM Table1 AS T1
JOIN Table2 AS T2 ON T1.BatchGuid = T2.Guid
ORDER BY T2.BatchId, T1.FileName
Неожиданно старый сервер вернул ~1 200 000 строк за 8-12 секунд, а новый сервер за ~90 секунд.
Я попытался выполнить те же действия на своем ноутбуке, и все сработало отлично (12 секунд).
Затем я попытался выполнить запрос без порядка, и оба сервера вернули одинаковые 1 200 000 строк за 4 секунды.
В чем может быть причина такой медленной работы с предложением order by?
UPDATE STATISTICS Table1 WITH FULLSCAN; UPDATE STATISTICS Table2 WITH FULLSCAN;
- person Charlieface   schedule 31.01.2021