Зведення
Додайте новий атрибут плану виконання запиту EstimateRowsWithoutRowGoal до SQL ServerSQL Server 2017 Cumulative Update 3 (CU3) і Microsoft SQL ServerSQL Server 2016 із пакетом оновлень 2 (SP2).
Коли оптимізатор запитів оцінює вартість плану виконання запиту, він зазвичай припускає, що потрібно обробити всі кваліфікаційні рядки з усіх джерел. Проте деякі запити змушують оптимізатор запитів шукати план, який швидше повертатиме меншу кількість рядків. Це може статися, якщо запит використовує речення TOP , підказку запиту FAST number_rows , речення IN або EXISTS або інструкцію SET ROWCOUNT { number | @number\_var } . У цьому випадку оптимізатор, оцінюючи план запиту, використовує ціль із рядка. Якщо застосовується цільовий план рядків, орієнтовна кількість рядків у плані виконання запиту зменшується. Це пов'язано з тим, що план передбачає, що для досягнення мети рядка потрібно буде обробити невелику кількість рядків.
Примітка Оцінка, отримана за допомогою цільового рядка, приблизна. Якщо фактичний розподіл даних нерівномірний, він може бути меншим за фактичну кількість рядків, які потрібно обробити. Таким чином, план запитів може стати неефективним. Щоб вирішити цю проблему, можна використати параметр запиту " ВИКОРИСТОВУВАТИ ПІДКАЗКУ" ('DISABLE_OPTIMIZER_ROWGOAL') або позначку трасування 4138.
Докладні відомості див. в статті Введення в оновленні аргументу підказки запиту USE HINT у SQL ServerSQL Server 2016. Однак у складних запитах може бути складно визначити, чи застосовується ціль рядка та наскільки це впливає на вибір плану.
Атрибут EstimateRowsWithoutRowGoal дає змогу порівняти результати з результатами атрибута EstimateRows , щоб побачити, наскільки цільовий рядок впливає на оцінки оптимізатора запитів.
Примітка Якщо ціль рядка не застосовується до певного оператора плану запиту, цей атрибут не враховується.
Додаткові відомості
Це оновлення входить до наведеного нижче сукупного пакета оновлень для SQL Server:
Сукупний пакет оновлень 3 для SQL ServerSQL Server 2017
Відомості про сукупні оновлення для SQL ServerSQL Server :
Кожне нове сукупне оновлення для SQL Server містить усі виправлення та виправлення системи безпеки, які входили до попереднього сукупного пакета оновлень. Перегляньте останні сукупні оновлення для SQL Server.
Останнє сукупне оновлення для SQL ServerSQL Server 2017
Відомості про пакет оновлень для SQL ServerSQL Server
Це оновлення входить до складу таких пакетів оновлень для SQL ServerSQL Server:
Пакет оновлень 2 для SQL ServerSQL Server 2016
Пакет оновлень 3 для SQL Server 2014
Пакети оновлень для SQL Server.
Пакети оновлень накопичуються. Кожен новий пакет оновлень містить усі попередні виправлення разом із новими виправленнями. Ми радимо використовувати для них найновіший пакет оновлень і останній сукупний пакет оновлень. Інсталювати попередній пакет оновлень перед інсталяцією останнього пакета оновлень не обов'язково. Щоб дізнатися більше про останній пакет оновлень і останній сукупний пакет оновлень, скористайтеся таблицею 1 у таблиці 1 цієї статті.
Визначення версії, випуску та рівня оновлення SQL Server і його компонентів
Посилання
Дізнайтеся, за допомогою яких термінів корпорація Майкрософт описує оновлення програмного забезпечення.