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

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

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

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

Обзор

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

Результаты оценки загружаются в вашу область рабочую область Log Analytics с использованием Microsoft Monitoring Agent (MMA). Если ваша виртуальная машина настроена для использования службы Log Analytics, функция "Оценка соответствия рекомендациям SQL" использует существующее подключение. В противном случае на виртуальную машину SQL Server устанавливается расширение MMA, которое подключается к указанной рабочей области 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 для загрузки результатов оценки. Если виртуальная машина SQL Server ранее не была связана с рабочей областью, выберите существующую область из раскрывающегося списка в своей подписке. В противном случае ранее связанная с машиной область будет подставлена.
    2. Укажите расписание запуска. Оценки можно запускать по запросу или автоматически по расписанию. Если вы выбрали расписание, укажите периодичность (еженедельно или ежемесячно), день недели, повторение (каждые 1–6 недель) и время начала оценки (локальное время виртуальной машины).
  5. Выберите Применить, чтобы сохранить изменения и развернуть Microsoft Monitoring Agent на SQL Server, если это еще не сделано. Вы получите уведомление на портале Azure, когда функция "Оценка соответствия рекомендациям SQL" для вашей виртуальной машины SQL Server будет готова.

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

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

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

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

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

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

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

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

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

Просмотр результатов

В разделе Результаты оценки на странице Оценка соответствия рекомендациям 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'
 
# 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 -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 -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 могут возникнуть некоторые из описанных ниже известных проблем.

Ошибка конфигурации при включении оценки соответствия рекомендациям SQL

Если виртуальная машина уже связана с рабочей областью Log Analytics, к которую у вас нет доступа или которая находится в другой подписке, в колонке конфигурации отобразится сообщение об ошибке. В первом случае вы можете получить разрешения для данной рабочей области или переключить виртуальную машину на другую область Log Analytics с помощью этих инструкций по удалению Microsoft Monitoring Agent.

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

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

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

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

Совет

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

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