Compartilhar via


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:

Permissões

Para habilitar as avaliações de práticas recomendadas do SQL, você precisa das seguintes permissões:

  • Colaborador de máquina virtual no recurso de máquina virtual subjacente.
  • Colaborador de máquina virtual no recurso de máquinas virtuais do SQL.
  • Contribuidor da análise de logs no grupo de recursos que contém o workspace do Log Analytics.
  • Leitor no grupo de recursos em que os recursos do Agente do Azure Monitor são criados. Marque a opção de configuração do grupo de recursos ao habilitar o recurso de avaliação de práticas recomendadas do SQL.

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 navegue até o recurso de máquinas virtuais do SQL.
  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 práticas recomendadas de avaliação 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 práticas recomendadas de avaliação do SQL da página Recurso de máquinas virtuais do SQL no 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:

  • Todas: todas as recomendações da execução atual
  • Novo: Novas recomendações (o delta de execuções anteriores)
  • Resolvidas: recomendações resolvidas de execuções anteriores
  • Insights: identifica os problemas mais recorrentes e os bancos de dados com a maioria dos problemas.

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 encontrou esse problema. Quando você seleciona uma linha na primeira grade, a segunda grade lista todas as instâncias dessa recomendação específica. Quando não há seleção na primeira grade, a segunda grade mostra todas as recomendações. 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.

Migrar para o AMA (Agente do Azure Monitor)

Anteriormente, o recurso de práticas recomendadas de avaliação do SQL usava o MMA (Microsoft Monitoring Agent) para carregar avaliações no workspace do Log Analytics. O Microsoft Monitoring Agent foi substituído pelo AMA (Agente do Azure Monitor). Para migrar as avaliações de práticas recomendadas do SQL existentes do MMA para o AMA, você deve excluir e registrar sua VM do SQL Server com a extensão novamente. Seus resultados existentes ainda estarão disponíveis depois que as avaliações forem habilitadas. Se o MMA não estiver sendo usado por outros serviços, você poderá removê-lo. Antes de migrar, verifique se o Log Analytics do Azure Monitor tem suporte na região em que sua VM do SQL Server está implantada.

Falha ao habilitar avaliações

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.

Falha ao executar uma avaliação

Verifique o status da execução da avaliação no portal do Azure. Se o status for falha, selecione o status para exibir a mensagem de erro. Você também pode entrar na VM e examinar mensagens de erro detalhadas para avaliações com falha no log de extensão em C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Y, onde 2.0.X.Y é a versão da extensão.

Se você estiver tendo problemas para executar uma avaliação:

  • Certifique-se de que seu ambiente atenda aos pré-requisitos.
  • Verifique se o serviço do Agente de IaaS do SQL está em execução na VM e se a extensão do Agente de IaaS do SQL está em um estado íntegro. Se a extensão do Agente de IaaS do SQL não estiver íntegra, repare a extensão para resolver quaisquer problemas e atualize-a para a versão mais recente sem nenhum tempo de inatividade do SQL Server.
  • Se você vir falhas de logon para NT SERVICE\SqlIaaSExtensionQuery, verifique se essa conta existe no SQL Server com permissões Server permission - CONTROL SERVER.

Falha no upload de resultados para o workspace do Log Analytics

Esse erro indica que o MMA (Microsoft Monitoring Agent) não pôde fazer o upload dos resultados dentro do período esperado.

Se os resultados não estiverem sendo carregados no workspace do Log Analytics, tente o seguinte:

Erros com configuração de TLS incorreta usando o Log Analytics

O erro de TLS mais comum ocorre quando a extensão MMA (Microsoft Monitoring Agent) não consegue estabelecer um handshake SSL ao se conectar ao ponto de extremidade do Log Analytics, o que normalmente acontece quando o TLS 1.0 é imposto pelo registro ou GPO no nível do sistema operacional, mas não é atualizado para o .NET Framework. Se tiver imposto o TLS 1.0 ou superior no Windows e desabilitado os protocolos SSL mais antigos, conforme a descrição em Chaves de registro específicas do Schannel, você também precisará garantir que o .NET Framework esteja configurado para usar criptografia forte.

Não é possível mudar o workspace do Log Analytics depois de configurar a Avaliação do SQL

Depois que uma VM é associada a um workspace do Log Analytics, ela não poderá ser alterada do recurso de máquina virtual SQL. Isso é para evitar que o Log Analytics seja usado em outros casos de uso. Você pode desconectar a VM usando a folha de recursos do Log Analytics na página Máquinas Virtuais no portal do Azure.

O resultado expirou devido à retenção de dados do workspace do Log Analytics

Isso indica que os resultados não são mais retidos no workspace do Log Analytics com base em sua política de retenção. Você pode mudar o período de retenção do workspace.