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

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных SQL Azure

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

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

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

Общие сведения о производительности базы данных SQL Azure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Важно!

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

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

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

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

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

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

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

Дальнейшие действия