Оценка соответствия рекомендациям SQL для SQL Server на виртуальных машинах Azure

Применимо к:SQL Server на виртуальной машине Azure

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

Чтобы узнать больше, просмотрите это видео об оценке соответствия рекомендациям SQL:

Обзор

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

Результаты оценки отправляются в рабочую область Log Analytics с помощью агента Azure Monitor (AMA). Расширение AMA устанавливается на виртуальную машину SQL Server, если она еще не установлена, а ресурсы AMA, такие как DCE, DCR , создаются и подключены к указанной рабочей области Log Analytics.

Время оценки зависит от среды (количества баз данных, объектов и т. д.) и может составлять от нескольких минут до часа. Кроме того, объем результатов оценки зависит от среды. Оценка выполняется в вашем экземпляре и во всех базах данных в нем. В ходе тестирования мы обнаружили, что при выполнении оценки может использоваться 5–10 % ресурсов ЦП компьютера. В этих тестах оценка производилась при выполнении приложения наподобие TPC-C для SQL Server.

Необходимые компоненты

Для использования функции "Оценка соответствия рекомендациям SQL" должны соблюдаться следующие условия:

  • Виртуальная машина SQL Server должна быть зарегистрирована в расширении IaaS SQL Server.
  • Для отправки результатов оценки необходима рабочая область Log Analytics в той же подписке, что и виртуальная машина SQL Server.
  • Версия SQL Server должна быть не ниже 2012.

Включить

Вы можете включить оценки рекомендаций SQL с помощью портал Azure или Azure CLI.

Чтобы включить оценки рекомендаций SQL с помощью портал Azure, выполните следующие действия.

  1. На портале Azure перейдите к ресурсу виртуальной машины SQL Server.
  2. Выберите Оценка соответствия рекомендациям SQL в разделе Параметры.
  3. Выберите Включить оценки соответствия рекомендациям SQL или Конфигурация, чтобы перейти на страницу Конфигурация.
  4. Установите флажок "Включить оценки рекомендаций SQL" и укажите следующее:
    1. Задайте рабочую область Log Analytics для загрузки результатов оценки. Выберите существующую рабочую область в подписке из раскрывающегося списка.
    2. Выберите группу ресурсов, в которой будут созданы ресурсы агента Azure Monitor DCE и DCR . Если указать одну группу ресурсов в нескольких виртуальных машинах SQL Server, эти ресурсы используются повторно.
    3. Укажите расписание запуска. Оценки можно запускать по запросу или автоматически по расписанию. Если вы выбрали расписание, укажите периодичность (еженедельно или ежемесячно), день недели, повторение (каждые 1–6 недель) и время начала оценки (локальное время виртуальной машины).
  5. Нажмите кнопку "Применить" , чтобы сохранить изменения и развернуть агент Azure Monitor на виртуальной машине SQL Server, если она еще не развернута. Вы получите уведомление на портале Azure, когда функция "Оценка соответствия рекомендациям SQL" для вашей виртуальной машины SQL Server будет готова.

Оценка виртуальной машины SQL Server

Режим запуска оценки:

  • По расписанию.
  • по запросу

Оценка по расписанию

Вы можете настроить оценку по расписанию с помощью портал Azure и Azure CLI.

Если вы устанавливаете расписание в области конфигурации, оценка выполняется автоматически по заданной дате и времени. Чтобы изменить расписание оценки, выберите Конфигурация. Новое расписание перезаписывает собой предыдущее.

Оценка по запросу

После включения функции оценки рекомендаций SQL для виртуальной машины SQL Server можно выполнить оценку по запросу с помощью портал Azure или Azure CLI.

Чтобы выполнить оценку по запросу с помощью портал Azure, выберите "Выполнить оценку" в области оценки рекомендаций SQL на странице ресурсов виртуальной машины SQL Server портал Azure.

Показать результаты

В разделе Результаты оценки на странице Оценка соответствия рекомендациям SQL отображается список последних оценок. В каждой строке указаны время начала и состояние (запланировано, запущено, отправка результатов, выполнено или сбой). Каждая оценка состоит из двух частей: оценка экземпляра и отправка результатов в рабочую область Log Analytics. Поле состояния охватывает обе эти части. Результаты оценки отображаются в книгах Azure.

Получить доступ к результатам оценки в книге Azure можно тремя способами:

  • На странице Оценка соответствия рекомендациям SQL нажмите кнопку Просмотр последней успешной оценки.
  • Выберите проведенную оценку в разделе Результаты оценки на странице Оценка соответствия рекомендациям SQL.
  • Выберите Просмотр результатов оценки в разделе 10 лучших рекомендаций на странице Обзор страницы ресурса виртуальной машины SQL.

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

Страница результатов

На странице Результаты рекомендации упорядочены на вкладках "Все", "Новые" и "Решенные". Эти вкладки позволяют просмотреть все рекомендации для текущего запуска, все новые рекомендации (отличия относительно предыдущих запусков) и решенные рекомендации с предыдущих запусков. Вкладки помогают отслеживать работу с рекомендациями между запусками. На вкладке Аналитика указаны самые частые проблемы, а также базы данных с максимальным числом проблем. Они позволяют решить, на чем следует сосредоточить свои усилия.

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

В первой сетке показаны все рекомендации и количество возникновений этой проблемы в вашей среде. Если выбрать строку в первой сетке, во второй сетке будут перечислены все экземпляры для этой рекомендации. Если в первой сетке ничего не выбрано, во второй сетке отображаются все рекомендации. Этот список может быть большим. Для фильтрации результатов вы можете использовать раскрывающиеся списки над сеткой (Имя, Серьезность, Теги, ИД проверки). Вы также можете использовать параметры Экспорт в Excel и Open the last run query in the Logs view (Открыть последний выполненный запрос в представлении "Журналы"), щелкая небольшие значки в правом верхнем углу каждой сетки.

В разделе Выполнено на графике указаны рекомендации, которые уже применены в вашей системе.

Чтобы просмотреть подробные сведения о рекомендации, выберите поле Сообщение (например, оно может содержать подробное описание и ссылки на соответствующие ресурсы в Интернете).

На странице Тренды есть три диаграммы, которые показывают изменения в динамике: все проблемы, новые и решенные проблемы. Диаграммы помогают оценить ход выполнения рекомендаций. В идеальном варианте количество рекомендаций должно уменьшаться, а число решенных проблем — расти. На легенде указано среднее количество проблем для каждого уровня серьезности. Наводите курсор на полоски, чтобы увидеть показатели для каждого запуска.

Если за один день было выполнено несколько проверок, в графиках на странице Тренды отражена только последняя из них.

Включение для всех виртуальных машин в подписке

С помощью Azure CLI можно включить функцию оценки рекомендаций SQL на всех виртуальных машинах SQL Server в подписке. Для этого используйте следующий пример скрипта:

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.
 
$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
# Resource Group where the Azure Monitor Agent resources will be created
$myAgentRg = 'myAgentRg'
 
# Ensure in correct subscription
az account set --subscription $subscriptionId
 
$sqlvms = az sql vm list | ConvertFrom-Json 
 
foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name
  
  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name  
 
  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

Известные проблемы

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

Переход с Microsoft Monitoring Agent (MMA) на агент Azure Monitor (AMA)

Ранее функция оценки рекомендаций SQL использовала MMA для отправки оценок в рабочую область Log Analytics. MMA уходит в отставку. Эта функция теперь использует AMA для отправки оценок. Если вы включили оценку рекомендаций SQL с помощью MMA в прошлом, вы можете легко перейти в AMA, сначала отключив, а затем повторно включите эту функцию. Существующие результаты по-прежнему будут доступны после операции отключения или включения, если указать ту же рабочую область Log Analytics. Если он не используется другими службами, вы можете удалить агент Microsoft Monitoring Agent, выполнив следующие инструкции. Перед миграцией убедитесь, что Azure Monitor Log Analytics поддерживается в регионе, в котором находится виртуальная машина SQL Server, используя таблицу, связанную здесь.

Сбой развертывания для включения или запуска оценки

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

Непройденные оценки

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

Совет

Если вы применили в Windows протокол TLS 1.0 или более новой версии и отключили старые SSL-протоколы, как описано здесь, также необходимо убедиться, что в .NET Framework настроено использование надежного шифрования.

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