Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Ознаки

Розглянемо такий сценарій:

  • У 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, перелічених у розділі "Стосується".

Посилання

Дізнайтеся про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×