Avaliação de melhores práticas do SQL para SQL Server nas VMs do Azure

Aplica-se a:SQL Server na VM do Azure

O recurso de avaliação de melhores práticas do SQL do portal do Azure identifica os possíveis problemas de desempenho e avalia se o SQL Server nas VMs (máquinas virtuais) do Azure está configurado para seguir as melhores práticas usando o conjunto de regras avançado fornecido pela API de Avaliação do SQL.

Para saber mais, assista a este vídeo sobre a avaliação de melhores práticas do SQL:

Visão geral

Após habilitar o recurso de avaliação de melhores práticas do SQL, o banco de dados e a instância do SQL Server serão verificados para fornecer as recomendações dos itens como índices, recursos preteridos, sinalizadores de rastreamento habilitados ou ignorados, estatísticas, etc. As recomendações são exibidas na página de gerenciamento de VM do SQL do portal do Azure.

Os resultados da avaliação são carregados no workspace do Log Analytics usando o AMA (Agente do Azure Monitor). A extensão AMA será instalada na VM do SQL Server, se ainda não estiver instalada, e os recursos AMA, como DCE, DCR, serão criados e conectados ao workspace do Log Analytics especificado.

O tempo de execução da avaliação depende do ambiente (número de bancos de dados, objetos e assim por diante), com uma duração de alguns minutos, até uma hora. Da mesma forma, o tamanho do resultado da avaliação também depende do ambiente. A avaliação é executada em sua instância e em todos os bancos de dados nessa instância. Em nossos testes, observamos que uma execução de avaliação pode ter um impacto de CPU de até 5 a 10% no computador. Nesses testes, a avaliação foi feita enquanto um aplicativo como TPC-C estava em execução no SQL Server.

Pré-requisitos

Para usar o recurso de avaliação de melhores práticas do SQL, é necessário ter os seguintes pré-requisitos:

Habilitar

Você pode habilitar avaliações de práticas recomendadas do SQL usando o portal do Azure ou a CLI do Azure.

Para habilitar avaliações de práticas recomendadas do SQL usando o portal do Azure, siga estas etapas:

  1. Entre no portal do Azure e acesse o recurso de VM do SQL Server.
  2. Selecione avaliações de melhores práticas do SQL em Configurações.
  3. Selecione Habilitar avaliações de melhores práticas do SQL ou Configuração para navegar até a página Configuração.
  4. Marque a caixa Habilitar avaliações de melhores práticas do SQL e forneça o seguinte:
    1. O workspace do Log Analytics no qual as avaliações serão carregadas. Escolha um workspace existente na assinatura a partir da lista suspensa.
    2. Escolha um grupo de recursos em que os recursos do Agente do Azure Monitor DCE e DCR serão criados. Se você especificar o mesmo grupo de recursos em várias VMs do SQL Server, esses recursos serão reutilizados.
    3. O Agendamento de execução. Você pode optar por executar avaliações sob demanda ou automaticamente com um agendamento. Se você escolher um agendamento, forneça a frequência (semanal ou mensal), o dia da semana, a recorrência (a cada 1 a 6 semanas) e a hora do dia em que as avaliações devem começar (hora local da VM).
  5. Selecione Aplicar para salvar as alterações e implantar o Agente do Azure Monitor na VM do SQL Server se ela ainda não estiver implantada. Uma notificação do portal do Azure informará quando o recurso de avaliação de melhores práticas do SQL estiver pronto para a VM do SQL Server.

Avaliar a VM do SQL Server

As avaliações são executadas:

  • Com base em um agendamento
  • Sob demanda

Executar avaliação agendada

Você pode configurar a avaliação com um agendamento usando o portal do Azure e a CLI do Azure.

Se você definir um agendamento no painel de configuração, uma avaliação será executada automaticamente na data e hora especificadas. Escolha Configuração para modificar o agendamento da avaliação. Quando você define um novo agendamento, o anterior é substituído.

Executar a avaliação sob demanda

Depois que o recurso de práticas recomendadas de avaliação do SQL estiver habilitado para a VM do SQL Server, será possível executar uma avaliação sob demanda usando o portal do Azure ou a CLI do Azure.

Para executar uma avaliação sob demanda usando o portal do Azure, selecione Executar avaliação no painel de avaliação de práticas recomendadas do SQL da página Recurso de VM do SQL Server do portal do Azure.

Exibir os resultados

A seção Resultados das avaliações da página Avaliação de melhores práticas do SQL mostra uma lista das execuções de avaliação mais recentes. Cada linha exibe a hora de início de uma execução e o status: agendado, em execução, carregando resultados, concluído ou com falha. Cada execução de avaliação tem duas partes: avalia a instância e carrega os resultados no workspace do Log Analytics. O campo de status abrange as duas partes. Os resultados da avaliação são mostrados nas pastas de trabalho do Azure.

Acesse a pasta de trabalho do Azure de resultados da avaliação de três maneiras:

  • Selecione o botão Exibir avaliação bem-sucedida mais recente na página Avaliação de melhores práticas do SQL.
  • Escolha uma execução concluída na seção Resultados da avaliação na página Avaliação de melhores práticas do SQL.
  • Selecione Exibir resultados da avaliação nas Dez principais recomendações apresentadas na página Visão geral da página do recurso de VM do SQL.

Ao abrir a pasta de trabalho, você poderá usar a lista suspensa para selecionar as execuções anteriores. Você pode ver os resultados de uma só execução na página Resultados ou examinar as tendências históricas na página Tendências.

Página Resultados

A página Resultados organiza as recomendações usando guias para Todos, novos e resolvidos. Use essas guias para ver todas as recomendações da execução atual, todas as novas recomendações (o delta das execuções anteriores) ou as recomendações resolvidas das execuções anteriores. As guias ajudam você a acompanhar o progresso entre as execuções. A guia Insights identifica os problemas mais recorrentes e os bancos de dados com a maioria dos problemas. Use-a para decidir qual será o foco das suas ações.

A avaliação de grupos de grafos resulta em diferentes categorias de severidade: alta, média, baixa, e informações. Selecione cada categoria para ver a lista de recomendações ou pesquise frases-chave na caixa de pesquisa. É melhor começar com as recomendações mais graves e ir descendo na lista.

A primeira grade mostra cada recomendação e o número de instâncias em que o ambiente atingiu esse problema. Quando você seleciona uma linha na primeira grade, a segunda grade lista todas as instâncias dessa recomendação específica. Se não houver seleção na primeira grade, a segunda grade mostrará todas as recomendações. Potencialmente, isso poderia ser uma grande lista. Você pode usar as listas suspensas acima da grade (Nome, Severidade, Marcas, ID de Verificação) para filtrar os resultados. Também é possível usarExportar para Excel e Abrir a última consulta de execução nas opções da exibição de Logs selecionando os pequenos ícones no canto superior direito de cada grade.

A seção passadas do grafo identifica as recomendações que o sistema já segue.

Veja informações detalhadas de cada recomendação selecionando o campo Mensagem, como uma descrição longa e os recursos online relevantes.

Há três gráficos na página Tendências para mostrar as alterações ao longo do tempo: todos os problemas, novos problemas e problemas resolvidos. Os gráficos ajudam você a acompanhar o progresso. O ideal é que o número de recomendações abaixe enquanto o número de problemas resolvidos aumenta. A legenda mostra o número médio de problemas para cada nível de severidade. Focalize as barras para ver os valores individuais de cada execução.

Se houver várias execuções em um só dia, somente a última será incluída nos grafos na página Tendências.

Habilitar para todas as VMs em uma assinatura

Você pode usar a CLI do Azure para habilitar o recurso práticas recomendadas de avaliação do SQL em todas as VMs do SQL Server em uma assinatura. Para fazer isso, use o seguinte script de exemplo:

# 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
}

Problemas conhecidos

Você pode encontrar alguns dos seguintes problemas conhecidos ao usar avaliações de melhores práticas do SQL.

Migrando do MMA (Microsoft Monitoring Agent) para o AMA (Agente do Azure Monitor)

Anteriormente, o recurso de práticas recomendadas de avaliação do SQL usava o MMA para carregar avaliações no workspace do Log Analytics. O MMA está sendo desativado. Esse recurso agora usa o AMA para carregar avaliações. Se você habilitou as práticas recomendadas de avaliação do SQL usando o MMA no passado, poderá facilmente migrar para o AMA desabilitando primeiro e, em seguida, reabilitando o recurso. Os resultados existentes ainda estarão disponíveis após a operação de desabilitação/habilitação, desde que você especifique o mesmo workspace do Log Analytics. Se ele não estiver sendo usado por outros serviços, você poderá remover o Microsoft Monitoring Agent seguindo estas instruções. Antes de migrar, verifique se o Log Analytics do Azure Monitor tem suporte na região em que sua VM do SQL Server reside usando a tabela vinculada aqui.

Falha na implantação para habilitar ou executar a avaliação

Confira o histórico de implantação do grupo de recursos que contém a VM do SQL para ver a mensagem de erro associada à ação com falha.

Avaliações com falha

Se a avaliação ou o upload dos resultados falhar por algum motivo, o status dessa execução indicará a falha. Um clique no status abrirá um painel de contexto onde você poderá ver os detalhes sobre a falha e as possíveis maneiras de corrigir o problema.

Dica

Se você tiver imposto o TLS 1.0 ou superior no Windows e desabilitado os protocolos SSL mais antigos, conforme a descrição aqui, verifique se o .NET Framework está configurado para usar uma criptografia forte.

Próximas etapas