Рекомендации помощника по базам данных для повышения производительности базы данных SQL Azure

Применимо к:База данных SQL Azure

База данных SQL Azure развивается и адаптируется вместе с вашим приложением. В базе данных SQL Azure предусмотрен ряд помощников по базам данных, которые предоставляют индивидуальные рекомендации, позволяющие максимально повысить производительность. Эти помощники по базам данных постоянно оценивают и анализируют историю использования и предоставляют рекомендации на основе шаблонов рабочих нагрузок, помогающих повысить производительность.

Обзор производительности

Общие сведения о производительности в портал Azure содержат сводку по производительности базы данных и помогут вам с настройкой производительности и устранением неполадок.

  • При наличии плитка Рекомендации предоставляет разбивку рекомендаций по настройке для базы данных. Выбор этой плитки позволяет выбрать параметры рекомендаций по производительности.
  • Элемент Действие настройки содержит сводные данные о текущих и выполненных действиях настройки базы данных и позволяет быстро получить представление об истории действий настройки. При выборе этой плитки вы перейдете к рекомендациям и журналу настройки для базы данных. Дополнительные сведения см. в статье об автоматической настройке.
  • В элементе Автонастройка отображается конфигурация автоматической настройки вашей базы данных (какие действия по настройке применяются к базе данных автоматически). При выборе этой плитки откроется диалоговое окно настройки автоматизации. Дополнительные сведения о автоматической настройке индексов баз данных и планах выполнения запросов см. в статье автоматической настройки.
  • На элементе Запросы к базе данных отображаются сводные данные о производительности запросов к вашей базе данных (общий объем использования DTU и наиболее ресурсоемкие запросы). При выборе этой плитки вы перейдете к анализу производительности запросов.
  • Диаграмма по умолчанию содержит сводную информацию о последних 24 часах действия базы данных с параметрами масштабирования более поздних действий. Графы с накоплением линейчатой полосы анализируют основные запросы по ЦП и многострочный граф представляет рабочую нагрузку по ЦП, операцию ввода-вывода данных и операций ввода-вывода журнала. Выберите отдельные гистограммы с накоплением в графе, каждый из которых представляет кэшированный план запроса. На странице "Анализ производительности запросов" и определите самые дорогие запросы в рабочей нагрузке. Дополнительные сведения см. в разделе Аналитика производительности запросов.

Перейдите на страницу обзора производительности в разделе "Интеллектуальная производительность" в меню навигации портал Azure для базы данных SQL Azure.

Screenshot from the Azure portal of the Performance Overview for Azure SQL Database.

Параметры рекомендаций по повышению производительности

Параметры рекомендаций по повышению производительности, доступные в базе данных SQL Azure:

Рекомендации по повышению производительности Поддержка отдельной базы данных и базы данных в пуле Поддержка базы данных экземпляра
Рекомендации по созданию индексов — рекомендации по созданию индексов, которые могут повысить производительность рабочей нагрузки. Да Нет
Рекомендации по удалению индексов. Рекомендует удалять избыточные и повторяющиеся индексы ежедневно, за исключением уникальных индексов и индексов, которые не использовались в течение длительного времени (>90 дней). Обратите внимание, что эта функция несовместима с приложениями, которые используют переключения секций и подсказки индекса. Удаление неиспользуемых индексов не поддерживается для уровней служб "Премиум" и "Критически важный для бизнеса". Да Нет
Рекомендации по параметризации запросов (предварительная версия) — рекомендации по принудительной параметризации при наличии одного или нескольких запросов, которые постоянно перекомпилируются, но в результате для них создается одинаковый план выполнения запроса. Да Нет
Рекомендации по устранению ошибок схемы (предварительная версия) — рекомендации по исправлению схемы отображаются, когда база данных SQL Azure обнаруживает аномальное количество связанных со схемой ошибок SQL, возникающих в базе данных. Корпорация Майкрософт в данный момент не поддерживает рекомендации по устранению ошибок схемы. Да Нет

A screenshot from the Azure portal showing sample performance recommendations for Azure SQL Database.

Сведения о применении рекомендаций по повышению производительности см. в разделе Применение рекомендаций. Чтобы просмотреть состояние рекомендаций, см. раздел Мониторинг операций.

Кроме того, вам доступен полный журнал действий по настройке, которые были применены ранее.

Рекомендации по созданию индексов

База данных SQL Azure непрерывно отслеживает выполняемые запросы и определяет индексы, которые могут повысить производительность. После того как система удостоверится в отсутствии определенного индекса, создается новая рекомендация Создание индекса.

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

Индексы, созданные с помощью рекомендаций, всегда помечаются как созданные автоматически. Узнать, какие индексы создаются автоматически, можно, просмотрев представление sys.indexes. Автоматически созданные индексы не блокируют команды ALTER и RENAME.

Если вы попытаетесь удалить столбец, по которому был автоматически создан индекс, команда будет выполнена. Автоматически созданный индекс также будет удален. Обычные индексы блокируют команду ALTER или RENAME, выполняемую для индексированных столбцов.

После применения рекомендации по созданию индекса база данных SQL Azure сравнивает производительность запросов с базовой производительностью. Если новый индекс повышает производительность, рекомендация помечается как успешная, а отчет о влиянии доступен. Если индекс не повысил производительность, он автоматически отменяется. База данных SQL Azure использует этот процесс, чтобы гарантировать, что рекомендации улучшают производительность базы данных.

У любой рекомендации по созданию индекса есть политика отхода, которая не позволит применить рекомендацию при высоком уровне использования базы данных или пула. Эта политика учитывает такие метрики, как загрузка ЦП, операции ввода-вывода данных и журнала, а также доступный объем хранилища.

Если ресурсы ЦП, операции ввода-вывода данных или журнала использовались более чем на 80 % за предыдущие 30 минут, рекомендация на создание индекса будет отложена. Если после создания индекса доступный объем хранилища будет ниже 10 %, рекомендация перейдет в состояние ошибки. Если через пару дней автоматическая настройка по-прежнему считает, что индекс будет полезным, процесс начинается снова.

Этот процесс будет повторяться, пока объем хранилища не будет достаточным для создания индекса или пока индекс не будет считаться полезным.

Рекомендации по удалению индексов

Помимо обнаружения недостающих индексов база данных SQL Azure постоянно анализирует производительность имеющихся индексов. Если индекс не используется, база данных SQL Azure порекомендует удалить его. Удаление индекса рекомендуется в двух случаях:

  • индекс является дубликатом другого индекса (созданного на основе того же столбца, схемы секций и фильтров);
  • Индекс не использовался в течение длительного периода (>90 дней).

Рекомендации по удалению индексов также проходят проверку после применения. Если производительность повысилась, будет создан отчет о результатах. Если производительность снизилась, будет выполнен откат рекомендации.

Рекомендации по параметризации запросов (предварительная версия)

Рекомендации по параметризации запросов появляются при наличии одного или нескольких запросов, которые постоянно перекомпилируются, но в результате для них создается одинаковый план выполнения запроса. Это дает возможность применить принудительную параметризацию, которая позволит кэшировать планы запросов и повторно использовать их в будущем, повышая производительность и снижая использование ресурсов.

Каждый запрос сначала должен быть скомпилирован для создания плана выполнения. Каждый создаваемый план добавляется в кэш планов и может быть использован повторно при последующем выполнении этого запроса, устраняя необходимость в дополнительной компиляции.

Запросы с непараметризованными значениями могут привести к снижению производительности, так как план выполнения перекомпилируется каждый раз, когда непараметризованные значения отличаются друг от друга. Во многих случаях одни и те же запросы с разными значениями параметров создают одинаковые планы выполнения. Однако эти планы по-прежнему добавляются в кэш планов отдельно.

Процесс перекомпиляции планов выполнения использует ресурсы базы данных, увеличивает длительность выполнения запроса и переполняет кэш планов. Эти события, в свою очередь, вызывают исключение планов из кэша. Такое поведение можно изменить, задав параметр принудительной параметризации для базы данных.

Чтобы было проще оценить влияние этой рекомендации, вам будет предоставлено сравнение фактического и предполагаемого потребления ресурсов ЦП (после применения рекомендации). Эта рекомендация позволяет сэкономить ресурсы ЦП. Она также может помочь уменьшить длительность запроса и переполнение кэша планов, а это означает, что в кэше может оставаться больше планов, которые можно повторно использовать. Вы можете быстро применить эту рекомендацию, выбрав команду Применить.

Через несколько минут после применения этой рекомендации для вашей базы будет принудительно включена параметризация и запущен мониторинг, который длится примерно 24 часа. По истечении этого периода будет создан отчет о проверке, содержащий информацию об использовании ресурсов ЦП для базы данных за 24 часа до и через 24 часа после применения рекомендации. Помощник по базам данных SQL Azure имеет механизм безопасности, который автоматически отменит примененную рекомендацию, если будет обнаружено снижение производительности.

Рекомендации по устранению ошибок схемы (предварительная версия)

Важно!

Корпорация Майкрософт в данный момент не поддерживает рекомендации по устранению ошибок схемы. Мы рекомендуем использовать Intelligent Insights для мониторинга проблем с производительностью базы данных, включая проблемы схемы, которые рассматривались ранее в рекомендациях по устранению ошибки схемы.

Рекомендации по устранению ошибок схемы появляются, когда база данных SQL Azure обнаруживает аномальное количество связанных со схемой ошибок SQL, возникающих в базе данных. Эта рекомендация обычно появляется, когда в базе данных возникает несколько связанных со схемой ошибок (недопустимое имя столбца, недопустимое имя объекта и т. д.) в течение часа.

"Ошибки схемы" относятся к классу синтаксических ошибок. Они происходят, когда определение запроса SQL и определение схемы базы данных не согласованы. Например, один из столбцов, ожидаемых запросом, может быть отсутствует в целевой таблице или наоборот.

Рекомендация "Устранение ошибок схемы" появляется, когда база данных SQL Azure обнаруживает аномальное количество связанных со схемой ошибок SQL, возникающих в базе данных. В следующей таблице показаны ошибки, которые относятся к схеме.

Код ошибки SQL Message
201 Процедура или функция "" ожидает параметр "", который не был указан.
207 Недопустимое имя столбца "*".
208 Недопустимое имя объекта "*".
213 Имя столбца или число переданных значений не соответствует определению таблицы.
2812 Не удалось найти хранимую процедуру "*".
8144 Для процедуры или функции * указано слишком много аргументов.

Пользовательские приложения

Разработчики могут рассмотреть возможность разработки настраиваемых приложений, используя рекомендации по повышению производительности для базы данных SQL Azure. Все рекомендации, приведенные на портале для базы данных, можно получить с помощью API Get-AzSqlDatabaseRecommendedAction.

Следующие шаги