Partilhar via


Avaliação de práticas recomendadas do SQL para SQL Server em VMs do Azure

Aplica-se a:SQL Server em VM do Azure

O recurso de avaliação de práticas recomendadas do SQL do portal do Azure identifica possíveis problemas de desempenho e avalia se seu SQL Server em Máquinas Virtuais (VMs) do Azure está configurado para seguir as práticas recomendadas usando o rico conjunto de regras fornecido pela API de Avaliação do SQL.

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

Visão geral

Depois que o recurso de avaliação de práticas recomendadas do SQL estiver habilitado, sua instância e bancos de dados do SQL Server serão verificados para fornecer recomendações para coisas como índices, recursos preteridos, sinalizadores de rastreamento habilitados ou ausentes, estatísticas etc. As recomendações são exibidas na página de gerenciamento de VM SQL do portal do Azure.

Os resultados da avaliação são carregados no seu espaço de trabalho do Log Analytics usando o Azure Monitor Agent (AMA). A extensão AMA é instalada na VM do SQL Server, se ainda não estiver instalada. Recursos do AMA, como pontos de extremidade de coleta de dados (DCE) e regras de coleta de dados (DCR), são criados e conectados ao espaço de trabalho especificado do Log Analytics.

O tempo de execução da avaliação depende do seu 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 seu ambiente. A avaliação é executada em relação à sua instância e a todos os bancos de dados dessa instância. Nos nossos testes, observámos que uma execução de avaliação pode ter um impacto na CPU na ordem dos 5 a 10% na máquina. Nesses testes, a avaliação foi feita enquanto um aplicativo semelhante a TPC-C estava sendo executado no SQL Server.

Pré-requisitos

Para usar o recurso de avaliação de práticas recomendadas do SQL, você deve ter os seguintes pré-requisitos:

Permissions

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

Enable

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

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

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

Avaliar a VM do SQL Server

As avaliações foram realizadas:

  • De acordo com um cronograma
  • A pedido

Executar avaliação agendada

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

Se você definir uma agenda no painel de configuração, uma avaliação será executada automaticamente na data e hora especificadas. Escolha Configuração para modificar sua agenda de avaliação. Depois de fornecer uma nova agenda, a agenda anterior é substituída.

Avaliação sob demanda

Depois que o recurso de avaliação de práticas recomendadas do SQL estiver habilitado para sua VM do SQL Server, é 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 de recursos de máquinas virtuais SQL no portal do Azure.

Ver resultados

A seção Resultados das avaliações da página Avaliações de práticas recomendadas 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 falhado. Cada execução de avaliação tem duas partes: avalia sua instância e carrega os resultados no espaço de trabalho do Log Analytics. O campo status abrange ambas as partes. Os resultados da avaliação são mostrados nas pastas de trabalho do Azure.

Aceda à pasta de trabalho de resultados de avaliação no Azure de três maneiras:

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

Assim que a pasta de trabalho estiver aberta, pode usar a lista suspensa para selecionar execuções anteriores. Você pode visualizar os resultados de uma única execução usando a página Resultados ou revisar tendências históricas usando a página Tendências .

Página de resultados

A página Resultados organiza as recomendações usando abas para:

  • Todos: Todas as recomendações da execução atual
  • Novo: Novas recomendações (o delta de execuções anteriores)
  • Resolvido: Recomendações das execuções anteriores resolvidas
  • Insights: Identifica os problemas mais recorrentes e os bancos de dados com mais problemas.

A avaliação dos grupos gráficos resulta em diferentes categorias de gravidade - alta, média, baixa e informação. Selecione cada categoria para ver a lista de recomendações ou procure frases-chave na caixa de pesquisa. É melhor começar com as recomendações mais severas e ir para baixo na lista.

A primeira grelha mostra cada recomendação e o número de instâncias no seu ambiente que encontraram esse problema. Quando você seleciona uma linha na primeira grade, a segunda lista todas as instâncias dessa recomendação específica. Se não houver seleção na primeira grade, a segunda grade mostra todas as recomendações, o que pode ser uma longa lista. Você pode usar as listas suspensas acima da grade (Nome, Gravidade, Tags, Check Id) para filtrar os resultados. Você também pode usar Exportar para Excel e Abrir a última consulta de execução na vista de Registos, selecionando os pequenos ícones no canto superior direito de cada grelha.

A seção passada do gráfico identifica as recomendações que seu sistema já segue.

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

Há três gráficos na página Tendências para mostrar as mudanças ao longo do tempo: todos os problemas, novos problemas e problemas resolvidos. Os gráficos ajudam-no a ver o seu progresso. Idealmente, o número de recomendações deve diminuir enquanto o número de questões resolvidas aumenta. A legenda mostra o número médio de problemas para cada nível de gravidade. Passe o cursor sobre as barras para ver os vales individuais para cada corrida.

Se houver várias execuções em um único dia, apenas a última execução será incluída nos gráficos na página Tendências .

Habilitar para todas as VMs em uma assinatura

Você pode usar a CLI do Azure para habilitar o recurso de avaliação de práticas recomendadas 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 práticas recomendadas de SQL.

Migrar para o Azure Monitor Agent (AMA)

Anteriormente, o recurso de avaliação de práticas recomendadas do SQL usava o Microsoft Monitoring Agent (MMA) para carregar avaliações no espaço de trabalho do Log Analytics. O Microsoft Monitoring Agent foi substituído pelo Azure Monitor Agent (AMA). Para migrar as avaliações de práticas recomendadas de SQL existentes do MMA para o AMA, deve eliminar e, em seguida, registar a sua VM do SQL Server novamente com a extensão. Os resultados existentes continuarã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 Azure Monitor Log Analytics tem suporte na região onde sua VM do SQL Server está implantada.

Falha ao habilitar avaliações

Para exibir a mensagem de erro associada à ação com falha, consulte o histórico de implantação do grupo de recursos que contém a VM SQL.

Falha ao executar uma avaliação

Verifique o status da avaliação no portal do Azure. Se o status falhar, selecione o status para exibir a mensagem de erro. Você também pode fazer login na VM e revisar mensagens de erro detalhadas para avaliações com falhas 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 a todos os pré-requisitos.
  • Verifique se o serviço SQL IaaS Agent está em execução na VM e se a extensão do SQL IaaS Agent está em um estado íntegro. Se a extensão do SQL IaaS Agent não estiver íntegra , repare a extensão para resolver quaisquer problemas e atualize-a para a versão mais recente sem qualquer tempo de inatividade do SQL Server.
  • Se vir falhas de logon para NT SERVICE\SqlIaaSExtensionQuery, certifique-se de que a conta existe no SQL Server com a permissão Server permission - CONTROL SERVER.

Falha ao carregar o resultado para o espaço de trabalho do Log Analytics

Este erro indica que o Microsoft Monitoring Agent (MMA) não conseguiu carregar os resultados dentro do período de tempo esperado.

Se os resultados não forem carregados para o espaço de trabalho do Log Analytics, tente a seguinte solução:

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

O erro de Transport Layer Security (TLS) mais comum ocorre quando a extensão do Microsoft Monitoring Agent (MMA) não consegue estabelecer uma ligação SSL ao conectar-se ao ponto de extremidade do Log Analytics. Esse erro 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 você impôs o TLS 1.0 ou superior no Windows e desabilitou protocolos SSL mais antigos, conforme descrito em Chaves do Registro específicas do Schannel, você também precisará certificar-se de que o .NET Framework está configurado para usar criptografia forte.

Não é possível alterar o espaço de trabalho do Log Analytics após configurar a Avaliação SQL

Depois que uma VM é associada a um espaço de trabalho do Log Analytics, ela não pode ser alterada do recurso de máquina virtual SQL. Essa restrição impede que o Log Analytics seja usado para outros casos de uso. Você pode desconectar a VM usando a guia de recursos do Log Analytics na página Máquinas Virtuais no portal do Azure.

O resultado expirou devido à retenção de dados no espaço de trabalho do Log Analytics

Esse erro indica que os resultados não são mais retidos no espaço de trabalho do Log Analytics, com base em sua política de retenção. Você pode alterar o período de retenção do espaço de trabalho.

A avaliação de conformidade para as melhores práticas em SQL não está ativada no Portal do Azure, mesmo depois de ativada por via da Azure Policy ou outro tipo de automação.

Os nomes da regra de recolha de dados e da associação da regra de recolha de dados para a avaliação de melhores práticas SQL seguem uma convenção específica de nomenclatura sensível a maiúsculas e minúsculas. Se a avaliação das melhores práticas SQL for ativada através de uma Política Azure, ou outra forma de automação, que cria um nome que não segue a convenção de nomenclatura adequada, a avaliação das melhores práticas SQL não será ativada.

Tanto os nomes da regra de recolha de dados como os nomes de associação das regras de recolha de dados são sensíveis a maiúsculas e minúsculas, com DCR e DCRA em maiúsculas, enquanto o resto do nome deve estar em minúsculas.

Os nomes devem usar as seguintes convenções de nomenclatura:

  • A regra de recolha de dados deve ser nomeada usando a <guid>_<regionname>_DCR_<number> convenção de nomenclatura, como o seguinte exemplo: 37e0cae3-c2bd-44f3-85af-975f28b08871_eastus2_DCR_1
  • A associação da regra de recolha de dados deve ser nomeada usando a <guid>_<regionname>_DCRA_<number> convenção de nomenclatura, como o seguinte exemplo: 37e0cae3-c2bd-44f3-85af-975f28b08871_eastus2_DCRA_1