Ознаки
Розглянемо такий сценарій:
-
У microsoft SQL Server 2016 використовується база даних із рівнем сумісності 130.
-
Виконується запит, який здійснює доступ до індексу сховища стовпців і індексу сховища рядків або купи, а також містить предикат фільтра (речення WHERE).
У цьому випадку SQL Server не зможе наблизити предикат фільтра до оператора джерела даних (сканування або пошук таблиці або індексу). Це може призвести до підоптимальної продуктивності запиту.
Крім того, якщо в запиті використовується вираз (наприклад, перетворення типу), у якому його правильність залежить від відфільтрованих даних (наприклад, стовпець таблиці символів перетворюється на int, але лише підмножина значень містить припустиме представлення цілих даних, і цей підмножина визначається предикатом фільтра), запит може не вдатися через помилку перетворення даних, яка приблизно така:
Помилка перетворення msg 245, рівня 16, стану 1, рядка 20
під час перетворення значення varchar "0,5" на тип даних int. Msg 8114, рівень 16, стан 5, рядок 34 Помилка перетворення типу даних varchar на bigint.Спосіб вирішення
Цю проблему вирішено в сукупному пакеті оновлень для SQL Server:Сукупний пакет оновлень 2 для SQL Server 2016 із пакетом оновлень 1 (SP1)
Примітка. Щоб це виправлення набуло сили, слід увімкнути виправлення оптимізатора запитів.
Щоб активувати виправлення оптимізатора запитів, можна скористатися одним із таких параметрів: позначка трасування 4199, параметр конфігурації області бази даних QUERY_OPTIMIZER_HOTFIXES=ON (доступно в SQL Server 2016 і пізніших версій) або USE_HINT параметр запиту "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (доступно в SQL Server 2016 із пакетом оновлень 1 (SP1) і пізніших версій).
Кожен новий сукупний пакет оновлень для SQL Server містить усі виправлення та всі виправлення системи безпеки, які входили в попередній сукупний пакет оновлень. Ознайомтеся з останніми сукупними оновленнями для SQL Server:Останнє сукупне оновлення для SQL Server 2016
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "Стосується".
Посилання
Дізнайтеся про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.