Ознаки
Під час запиту в поданні в Microsoft SQL Server 2014 або 2016, це може тривати ще більше часу, якщо порівняти його з виконанням в SQL Server 2008 R2.
Під час виконання запиту, у якому використовується "UNION ALL" і "Ціль" (наприклад, "ВЕРХНЄ N", "швидкий N" або "НАЯВНИЙ предикат"), можна помітити, що запит працює повільніше в SQL Server 2014 або пізніші версії, якщо порівняти його з SQL Server 2008 R2.
Причина
У SQL Server 2008 R2, оптимізатор запитів змінює порядок різних частин у розділі UNION ALL, якщо мета рядка присутній, так що найдешевший компонент буде першим. Це дає змогу виконати запит на завершення виконання раніше, якщо дешевші частини виробляють необхідну кількість рядків, не Продовжуючи виконувати більше дорогих частин. Таке перевпорядкування не відбувається в подальших версіях SQL Server.
Спосіб вирішення
Ця проблема усунена в такому сукупному оновленні для сервера SQL Server:
Сукупне оновлення 7 для SQL Server 2016 RTM
Сукупне оновлення 4 для SQL Server 2016 SP1
Сукупне оновлення 6 для SQL Server 2014 SP2
Примітка. Для цієї проблеми має бути увімкнуто Opticiser запитів.
Щоб отримати докладні відомості про оптимізатор запитів і трасування прапорів, ознайомтеся з такими посиланнями:
Оптимізація запитів на SQL Server для виправлення в виправленні ttf 4199
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Посилання
Відомості про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.