Ознаки
Припустимо, що ви запускаєте запит, який містить об'єднання або Агрегація на стовпці, який охоплюється як один стовпець, так і кілька стовпців Статистика (у якому стовпець не є головною). Якщо використовується за замовчуванням кількість оцінювача (CE) у SQL Server 2016 може недооцінювати число. різних рядків. Це призводить до підоптимального плану виконання запиту (наприклад, низьку оцінку може спричинити нестачу пам'яті для оператора гешування, який спричиняє розлив до бази даних tempdb).
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Спосіб вирішення
Ця проблема усунена в такому сукупному оновленні для сервера SQL Server:
Примітка. Щоб це виправлення набрали сили, потрібно ввімкнути виправлення в Оптимізаторі запитів за допомогою позначки трасування (TF) 4199 або відповідного параметра "параметри запиту" в базі даних.
Відомості про накопичувальне оновлення для сервера SQL Server:
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Інші способи вирішення
Цю проблему можна виправити, додавши наведений нижче підказку запиту.
ВИКОРИСТОВУВАТИ ПІДКАЗКА ("FORCE_LEGACY_CARDINALITY_ESTIMATION")
Посилання
Відомості про термінологію , яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.