Плани запитів змінить продуктивність гірше в SQL Server 2014


10

Нещодавно ми оновили наш сервер з SQL Server 2008R2 до SQL Server 2014. У нас є запит, який спрацював нормально у 2008R2, але тепер у 2014 році працює неймовірно набагато повільніше та має поганий план виконання.

Я зробив кілька тестів ...

  1. Переключіть БД 2014 року в режим сумісності 2008/2012.
  2. Тестуйте запит за допомогою сторінки «Пагинація».

Обидва ці результати призвели до того, що запит працює так само, як і SQL Server 2008R2.

Чому план настільки поганий і запит працює так довго в SQL Server 2014?

Оціночний / фактичний

На цьому зображенні показано 2 запити, в одному використовується рядовий номер так, як він працював у 2008R2, а другий - виправлення з використанням сторінки. Обидва проходили в 2014 році, обидва дуже різні, але в 2008 році ми бачимо таку ж ефективність, як якщо б ми використовували пагінацію в 2014 році.

Відповіді:


7

Це не проблема, це задум і вважається підвищенням продуктивності.

Якщо ваші запити не виконуються, як очікувалося, вам потрібно буде вирішити це в коді вашої бази даних / програми.

Ви можете примусити старий оцінювальний показник, використовуючи прапор сліду 9481 на рівні сервера, сесії або запиту (використовуючи OPTION (QUERYTRACEON 9481)). Це змусить це не залежно від рівня сумісності бази даних.

Тут також розміщено багато інформації, яку розмістила команда CSS .

Більш детальна публікація про оцінювач Cardanility та зміни навколо цього процесу в SQL Server 2014 включає приклад.


Це звучить як
поскудний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.