Недавно мы обновили наш сервер с SQL Server 2008R2 до SQL Server 2014. У нас есть запрос, который нормально работал в 2008R2, но теперь в 2014 году он работает невероятно медленнее и имеет плохой план выполнения.
Я сделал несколько тестов ...
- Переключите БД 2014 обратно в режим совместимости 2008/2012.
- Протестируйте запрос, используя разбиение на страницы.
В результате оба запроса выполнялись так же, как и SQL Server 2008R2.
Почему план так плох и запрос выполняется так долго в SQL Server 2014?
На этом изображении показаны 2 запроса, один из которых использует число, аналогичное тому, которое он выполнял в 2008R2, а затем второе исправление с разбивкой на страницы. Оба работали в 2014 году, оба очень разные, но в 2008 году мы видим такую же производительность, как если бы мы использовали нумерацию страниц в 2014 году.