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