Поделиться через


Интеллектуальная обработка запросов в базах данных SQL

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azureбазе данных SQL в Microsoft Fabric

Семейство функций интеллектуальной обработки запросов включает средства, которые значительно повышают производительность существующих рабочих нагрузок и требуют минимальных усилий при реализации для внедрения. На следующем рисунке описано семейство функций IQP и когда они были впервые представлены для SQL Server. Все функции IQP доступны в Управляемый экземпляр SQL Azure и База данных SQL Azure. Некоторые функции зависят от уровня совместимости базы данных.

Схема семейства функций интеллектуальной обработки запросов и когда они были впервые представлены в SQL Server.

Просмотрите это видео, чтобы просмотреть общие сведения об интеллектуальной обработке запросов:

 

Сведения о демонстрациях и образце кода функций интеллектуальной обработки запросов (IQP) на сайте GitHub см https://aka.ms/IQPDemos. в статье .

Рабочие нагрузки можно автоматически сделать подходящими для интеллектуальной обработки запросов, включив для базы данных соответствующий уровень совместимости. Это можно сделать с помощью Transact-SQL. Например:

ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 170;

В приведенной ниже таблице представлены все функции интеллектуальной обработки запросов и предъявляемые ими требования к уровню совместимости базы данных. Подробные сведения обо всех функциях IQP, включая заметки о выпуске и более подробные описания, см. в подробной статье о функциях интеллектуальной обработки запросов.

Функции IQP для базы данных SQL Azure и ПРЕДВАРИТЕЛЬНОй версии SQL Server 2025

Функция интеллектуальной обработки запросов Поддержка в Базе данных SQL Azure Поддерживается в предварительной версии SQL Server 2025 (17.x) Описание
Оптимизированная защита Хэллоуина нет Да, начиная с SQL Server 2025 (17.x) предварительная версия с уровнем совместимости 170 Уменьшает tempdb потребление пространства и повышает производительность запросов, не используя подполок для защиты Хэллоуина.
Дополнительная оптимизация плана параметров (OPPO) нет Да, начиная с SQL Server 2025 (17.x) предварительная версия с уровнем совместимости 170 Использует инфраструктуру оптимизации адаптивного плана (Multiplan), которая была представлена вместе с улучшением оптимизации плана, чувствительной к параметрам (PSPO), и позволяет генерировать несколько планов из одного запроса. Эта функция может во время выполнения выбрать более оптимальный план на основе того, является ли параметр NULL OR NOT NULL, что повышает производительность запросов, которые в противном случае могли бы показать неоптимальную производительность для таких шаблонов запросов.
Оценка кратности (CE) для выражений нет Да, начиная с SQL Server 2025 (17.x) предварительная версия с уровнем совместимости 160 Расширяет использование данных CE для улучшения оценки кратности повторяющихся выражений в запросах, учась на предыдущих выполнениях и автоматически применяя соответствующие варианты модели оценки кратности к будущим выполнениям этих выражений.
OPTIMIZED_SP_EXECUTESQL Да Да, начиная с предварительной версии SQL Server 2025 (17.x) Эффективно снижать воздействие бурь компиляции. Штормы компиляции относятся к ситуации, когда большое количество запросов компилируется одновременно, что приводит к проблемам производительности и спору ресурсов. Включите эту функцию, чтобы вызовы sp_executesql вели себя как объекты, такие как хранимые процедуры и триггеры, с точки зрения компиляции.

Функции IQP для Базы данных SQL Azure и SQL Server 2022

Функция интеллектуальной обработки запросов Поддержка в Базе данных SQL Azure Поддерживается в SQL Server 2022 (16.x) и более поздних версиях Описание
Адаптивные соединения в пакетном режиме Да, начиная с уровня совместимости базы данных 140 Да, начиная с SQL Server 2017 (14.x) с уровнем совместимости базы данных 140 При использовании адаптивных соединений тип соединения выбирается динамически во время выполнения в зависимости от фактических входных строк.
Приблизительный подсчет различных объектов Да Да, начиная с SQL Server 2019 (15.x) Предоставьте приблизительные решения COUNT DISTINCT для сценариев больших данных с преимуществами высокой производительности и низкими требованиями к памяти.
Приблизительный процентиль Да, начиная с уровня совместимости базы данных 110 Да, начиная с SQL Server 2022 (16.x) с уровнем совместимости 110 Быстрое вычисление процентилей для большого набора данных с допустимыми границами ошибок на основе ранга, чтобы помочь принимать быстрые решения с помощью приблизительных статистических функций процентиля.
Пакетный режим для данных rowstore Да, начиная с уровня совместимости базы данных 150 Да, начиная с SQL Server 2019 (15.x) с уровнем совместимости 150 Пакетный режим для рабочих нагрузок реляционного хранилища данных, ограниченных производительностью ЦП, без необходимости использовать индексы columnstore.
Оценка кратности (CE) отзывы Да, начиная с уровня совместимости базы данных 160 Да, начиная с SQL Server 2022 (16.x) с уровнем совместимости 160 Автоматически корректирует оценки кратности для повторяющихся запросов для оптимизации рабочих нагрузок, в которых неэффективные предположения CE вызывают низкую производительность запросов. Обратная связь CE будет определять и использовать предположение модели, которое лучше подходит заданному запросу и распределению данных, чтобы улучшить качество плана выполнения запроса.
Степень параллелизма (DOP) обратной связи Да, начиная с уровня совместимости базы данных 160 Да, начиная с уровня совместимости базы данных 160 Автоматически настраивает степень параллелизма для повторяющихся запросов, чтобы оптимизировать рабочие нагрузки, в которых неэффективный параллелизм может вызвать проблемы с производительностью. Требуется включить хранилище запросов.
Выполнение с чередованием Да, начиная с уровня совместимости базы данных 140 Да, начиная с SQL Server 2017 (14.x) с уровнем совместимости базы данных 140 Использует фактическое кратность функции с табличным табличным значением, обнаруженной при первой компиляции вместо фиксированного предположения.
Отзыв о предоставлении памяти (пакетный режим) Да, начиная с уровня совместимости базы данных 140 Да, начиная с SQL Server 2017 (14.x) с уровнем совместимости базы данных 140 Если при выполнении запроса в пакетном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.
Отзыв о предоставлении памяти (режим строк) Да, начиная с уровня совместимости базы данных 150 Да, начиная с SQL Server 2019 (15.x) с уровнем совместимости базы данных 150 Если при выполнении запроса в построчном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.
Отзыв о предоставлении памяти (Процентиль) Да, включена во всех базах данных Да, начиная с SQL Server 2022 (16.x)) с уровнем совместимости базы данных 140 Устраняет существующие ограничения предоставления отзывов о предоставлении памяти не навязчивым способом путем включения прошлого выполнения запроса для уточнения обратной связи.
Сохраняемость обратной связи с предоставлением памяти Да, включена во всех базах данных Да, начиная с SQL Server 2022 (16.x)) с уровнем совместимости базы данных 140 Предоставляет новые функциональные возможности для сохранения отзывов о предоставлении памяти. Для базы данных необходимо включить хранилище запросов и установить режим READ_WRITE.
Сохраняемость отзывов CE Да, начиная с уровня совместимости базы данных 160 Да, начиная с SQL Server 2022 (16.x)) с уровнем совместимости базы данных 160 Для базы данных необходимо включить хранилище запросов и установить режим READ_WRITE.
Оптимизированная схема принудительного использования хранилища запросов Да Да, начиная с SQL Server 2022 (16.x)). Уменьшает затраты на компиляцию для повторения принудительных запросов. Дополнительные сведения см. в разделе "Оптимизированный план" с помощью хранилище запросов.
Встраивание скалярных определяемых пользователем функций Да, начиная с уровня совместимости базы данных 150 Да, начиная с SQL Server 2019 (15.x) с уровнем совместимости базы данных 150 Скалярные пользовательские функции преобразуются в эквивалентные реляционные выражения, которые "встраиваются" в вызывающий запрос, что часто приводит к существенному повышению производительности.
Оптимизация конфиденциального плана параметров Да, начиная с уровня совместимости базы данных 160 Да, начиная с SQL Server 2022 (16.x) с уровнем совместимости базы данных 160 Оптимизация конфиденциального плана параметров устраняет сценарий, в котором один кэшированный план для параметризованного запроса не является оптимальным для всех возможных входящих значений параметров, например неоднородных распределений данных.
Отложенная компиляция табличных переменных Да, начиная с уровня совместимости базы данных 150 Да, начиная с SQL Server 2019 (15.x) с уровнем совместимости базы данных 150 Использует фактическое кратность табличной переменной, обнаруженной при первой компиляции, вместо фиксированного предположения.

Функции IQP для Управляемый экземпляр SQL Azure

Функция интеллектуальной обработки запросов Поддерживается в Управляемый экземпляр SQL Azure Описание
Адаптивные соединения в пакетном режиме Да, начиная с уровня совместимости базы данных 140 При использовании адаптивных соединений тип соединения выбирается динамически во время выполнения в зависимости от фактических входных строк.
Приблизительный подсчет различных объектов Да Предоставьте приблизительные решения COUNT DISTINCT для сценариев больших данных с преимуществами высокой производительности и низкими требованиями к памяти.
Приблизительный процентиль Да, начиная с уровня совместимости базы данных 110 Быстрое вычисление процентилей для большого набора данных с допустимыми границами ошибок на основе ранга, чтобы помочь принимать быстрые решения с помощью приблизительных статистических функций процентиля.
Пакетный режим для данных rowstore Да, начиная с уровня совместимости базы данных 150 Пакетный режим для рабочих нагрузок реляционного хранилища данных, ограниченных производительностью ЦП, без необходимости использовать индексы columnstore.
Оценка кратности (CE) отзывы Да, начиная с уровня совместимости базы данных 160 Автоматически корректирует оценки кратности для повторяющихся запросов для оптимизации рабочих нагрузок, в которых неэффективные предположения CE вызывают низкую производительность запросов. Обратная связь CE будет определять и использовать предположение модели, которое лучше подходит заданному запросу и распределению данных, чтобы улучшить качество плана выполнения запроса.
Степень параллелизма (DOP) обратной связи Да, начиная с уровня совместимости базы данных 160 в политике обновления Always-up-to-date. Нет, это не касается политики обновления SQL Server 2022. Автоматически настраивает степень параллелизма для повторяющихся запросов, чтобы оптимизировать рабочие нагрузки, в которых неэффективный параллелизм может вызвать проблемы с производительностью. Требуется включить хранилище запросов.
Выполнение с чередованием Да, начиная с уровня совместимости базы данных 140 Использует фактическое кратность функции с табличным табличным значением, обнаруженной при первой компиляции вместо фиксированного предположения.
Отзыв о предоставлении памяти (пакетный режим) Да, начиная с уровня совместимости базы данных 140 Если при выполнении запроса в пакетном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.
Отзыв о предоставлении памяти (режим строк) Да, начиная с уровня совместимости базы данных 150 Если при выполнении запроса в построчном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.
Отзыв о предоставлении памяти (Процентиль) Да, начиная с уровня совместимости базы данных 160 Устраняет существующие ограничения предоставления отзывов о предоставлении памяти не навязчивым способом путем включения прошлого выполнения запроса для уточнения обратной связи.
Сохраняемость отзывов о предоставлении памяти, CE и DOP Да, начиная с уровня совместимости базы данных 160 Предоставляет новые функциональные возможности для сохранения отзывов о предоставлении памяти. Отзывы CE и DOP всегда сохраняются. Для базы данных необходимо включить хранилище запросов и установить режим READ_WRITE.
Оптимизированная схема принудительного использования хранилища запросов Без Уменьшает затраты на компиляцию для повторения принудительных запросов. Дополнительные сведения см. в разделе "Оптимизированный план" с помощью хранилище запросов.
Встраивание скалярных определяемых пользователем функций Да, начиная с уровня совместимости базы данных 150 Скалярные пользовательские функции преобразуются в эквивалентные реляционные выражения, которые "встраиваются" в вызывающий запрос, что часто приводит к существенному повышению производительности.
Оптимизация конфиденциального плана параметров Да, начиная с уровня совместимости базы данных 160 Оптимизация плана конфиденциальности параметров устраняет сценарий, в котором один кэшированный план для параметризованного запроса не является оптимальным для всех возможных входящих значений параметров, например неоднородных распределений данных.
Отложенная компиляция табличных переменных Да, начиная с уровня совместимости базы данных 150 Использует фактическое кратность табличной переменной, обнаруженной при первой компиляции, вместо фиксированного предположения.

Функции IQP для SQL Server 2019

Функция IQP Поддерживается в SQL Server 2019 (15.x) Описание
Адаптивные соединения в пакетном режиме Да, начиная с SQL Server 2017 (14.x) с уровнем совместимости базы данных 140 При использовании адаптивных соединений тип соединения выбирается динамически во время выполнения в зависимости от фактических входных строк.
Приблизительный подсчет различных объектов Да Предоставьте приблизительные решения COUNT DISTINCT для сценариев больших данных с преимуществами высокой производительности и низкими требованиями к памяти.
Пакетный режим для данных rowstore Да, начиная с уровня совместимости базы данных 150 Пакетный режим для рабочих нагрузок реляционного хранилища данных, ограниченных производительностью ЦП, без необходимости использовать индексы columnstore.
Выполнение с чередованием Да, начиная с уровня совместимости базы данных 140 Использование фактической кратности из выходных данных функции с табличным значением с несколькими инструкциями, обнаруженной при первой компиляции, вместо фиксированной оценки.
Отзыв о предоставлении памяти (пакетный режим) Да, начиная с уровня совместимости базы данных 140 Если при выполнении запроса в пакетном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.
Отзыв о предоставлении памяти (режим строк) Да, начиная с уровня совместимости базы данных 150 Если при выполнении запроса в построчном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.
Встраивание скалярных определяемых пользователем функций Да, начиная с уровня совместимости базы данных 150 Скалярные пользовательские функции преобразуются в эквивалентные реляционные выражения, которые "встраиваются" в вызывающий запрос, что часто приводит к существенному повышению производительности.
Отложенная компиляция табличных переменных Да, начиная с уровня совместимости базы данных 150 Использование фактической кратности табличной переменной, обнаруженной при первой компиляции, вместо фиксированной оценки.

Функции IQP для SQL Server 2017

Функция IQP Поддерживается в SQL Server 2017 (14.x) Описание
Адаптивные соединения в пакетном режиме Да, начиная с SQL Server 2017 (14.x) с уровнем совместимости базы данных 140 При использовании адаптивных соединений тип соединения выбирается динамически во время выполнения в зависимости от фактических входных строк.
Приблизительный подсчет различных объектов Да Предоставьте приблизительные решения COUNT DISTINCT для сценариев больших данных с преимуществами высокой производительности и низкими требованиями к памяти.
Выполнение с чередованием Да, начиная с уровня совместимости базы данных 140 Использование фактической кратности из выходных данных функции с табличным значением с несколькими инструкциями, обнаруженной при первой компиляции, вместо фиксированной оценки.
Отзыв о предоставлении памяти (пакетный режим) Да, начиная с уровня совместимости базы данных 140 Если при выполнении запроса в пакетном режиме некоторые операции переносятся на диск, объем памяти для последующих выполнений увеличивается. Если запрос тратит > 50 % выделенной памяти, уменьшите размер предоставления памяти для последовательных выполнений.

требование хранилище запросов

Для использования пользовательской базы данных хранилище запросов необходимо включить несколько функций интеллектуальной обработки запросов. Чтобы включить хранилище запросов, см. раздел "Включить хранилище запросов".

Функция IQP Требуется включить хранилище запросов и READ_WRITE
Адаптивные соединения в пакетном режиме нет
Приблизительный подсчет различных объектов нет
Приблизительный процентиль нет
Пакетный режим для данных rowstore нет
Оценка кратности (CE) отзывы Да
Степень параллелизма (DOP) обратной связи Да
Выполнение с чередованием нет
Отзыв о предоставлении памяти (пакетный режим) нет
Отзыв о предоставлении памяти (режим строк) нет
Обратная связь о предоставлении памяти (режим процентиля и сохраняемости) Да
Оптимизированная схема принудительного использования хранилища запросов Да
Встраивание скалярных определяемых пользователем функций нет
Оптимизация конфиденциального плана параметров Нет, но рекомендуется
Отложенная компиляция табличных переменных нет