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

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

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

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

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

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

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

ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 160;

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

Функции IQP для База данных SQL Azure и SQL Server 2022 (16.x)

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

Функции IQP для SQL Server 2019 (15.x)

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

Функции IQP для SQL Server 2017 (14.x)

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

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

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

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

Полные сведения обо всех функциях IQP, включая заметки о выпуске и более подробные описания, см. в разделе "Интеллектуальные сведения об обработке запросов" (IQP).