Поделиться через


Оценка соответствия рекомендациям 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, вам потребуются следующие разрешения:

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

Включить

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

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

  1. Войдите в портал Azure и перейдите к ресурсу виртуальных машин SQL.
  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 в портал 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 могут возникнуть некоторые из описанных ниже известных проблем.

Миграция в агент Azure Monitor (AMA)

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

Не удалось включить оценки

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

Не удалось выполнить оценку

Проверьте состояние выполнения оценки в портал Azure. Если состояние не выполнено, выберите состояние, чтобы просмотреть сообщение об ошибке. Вы также можете войти в виртуальную машину и просмотреть подробные сообщения об ошибках для неудачных оценок в журнале C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Yрасширений, где 2.0.X.Y — это версия расширения.

Если у вас возникли проблемы с выполнением оценки:

  • Убедитесь, что среда соответствует всем предварительным требованиям.
  • Убедитесь, что служба агента IaaS SQL запущена на виртуальной машине, а расширение агента IaaS SQL находится в работоспособном состоянии. Если расширение агента IaaS SQL неработоспособно, восстановите расширение для устранения любых проблем и обновите его до последней версии без простоя SQL Server.
  • Если вы видите сбои NT SERVICE\SqlIaaSExtensionQueryвхода, убедитесь, что учетная запись существует в SQL Server с разрешением Server permission - CONTROL SERVER .

Не удалось отправить результат в рабочую область Log Analytics

Эта ошибка означает, что microsoft Monitoring Agent (MMA) не удалось передать результаты в течение ожидаемого интервала времени.

Если результаты не удается отправить в рабочую область Log Analytics, попробуйте следующее:

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

Ошибки из-за неправильной конфигурации TLS при использовании Log Analytics

Наиболее распространенная ошибка TLS возникает, когда расширение Microsoft Monitoring Agent (MMA) не может установить подтверждение SSL при подключении к конечной точке Log Analytics, которая обычно происходит, когда протокол TLS 1.0 применяется реестром или GPO на уровне ОС, но не обновляется для платформы .NET. Если вы выполнили протокол TLS 1.0 или более поздней версии в Windows и отключили старые протоколы SSL, как описано в разделах реестра Schannel, необходимо также убедиться, что платформа .NET Framework настроено для использования строгой криптографии.

После настройки службы "Оценка SQL" не удается изменить рабочую область Log Analytics

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

Срок действия результата истек из-за периода хранения данных рабочей области Log Analytics

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