Como monitorar o desempenho do banco de dados
Uma parte importante das técnicas de solução de problemas que você usaria para solucionar problemas de desempenho do banco de dados permanece a mesma no SQL do Azure.
Todas as ferramentas normalmente usadas para monitorar e solucionar problemas do SQL Server também são aplicáveis ao SQL Server em execução na Máquina Virtual do Azure, incluindo ferramentas como o Monitor de Desempenho. No entanto, devido à natureza da PaaS (Plataforma como Serviço), o Banco de Dados SQL do Azure e a Instância Gerenciada de SQL do Azure fornecem um conjunto diferente de ferramentas. Em seguida, exploraremos as ferramentas específicas para as ofertas de PaaS do Azure e suas funcionalidades.
Comparar resultados de desempenho com sua linha de base
O processo de estabelecer uma linha de base normalmente começa bem antes da migração real do banco de dados. Isso envolve a coleta de um conjunto abrangente de medidas de dados que refletem o desempenho padrão do banco de dados em seu ambiente original. Essas medidas podem incluir, mas não estão limitadas a uso de CPU, tempos de resposta, taxas de transação e taxas de erro.
Essa linha de base serve como um ponto de referência em relação ao qual o desempenho do banco de dados migrado pode ser comparado. No entanto, a avaliação ou comparação desses dados de linha de base com as métricas de desempenho do banco de dados migrado só ocorre após a conclusão da migração.
Após a migração, o desempenho do novo ambiente de banco de dados é monitorado e medido. Essas métricas pós-migração são então comparadas com a linha de base de pré-migração para identificar quaisquer discrepâncias ou problemas de desempenho. Essa comparação ajuda a entender se a migração teve efeitos adversos no desempenho do banco de dados ou se há áreas que exigem otimização para melhorar o desempenho.
Ajuste automático
ajuste automático é um recurso que aprende continuamente com sua carga de trabalho, identifica possíveis problemas e melhorias e oferece recomendações com base nos dados do Repositório de Consultas. Ele se adapta às alterações nos planos de execução causadas por modificações de esquema ou índice ou atualizações de dados.
Você pode aplicar manualmente as recomendações de ajuste usando o portal do Azure ou permitir que o ajuste automático aplique as recomendações de ajuste de maneira autônoma para você. No Banco de Dados SQL do Azure, ele também pode melhorar o desempenho da consulta ajustando índices.
Correção automática de plano
Com a ajuda do Repositório de Consultas, o mecanismo de banco de dados pode detectar quando os planos de execução de consulta regrediram no desempenho. Embora você possa identificar manualmente um plano regressivo por meio da interface do usuário, o Repositório de Consultas também fornece a opção de notificar você automaticamente.
No exemplo especificado, uma marca de seleção aparece ao lado de ID do Plano 1, indicando que o plano é forçado.
Depois que você habilitar o ajuste automático, o mecanismo de banco de dados imporá automaticamente qualquer plano de execução de consulta sugerido nas seguintes condições:
- A taxa de erro do plano anterior excede a do plano recomendado
- O ganho estimado da CPU supera 10 segundos
- O plano forçado supera o anterior
Quando ocorre a força automática do plano, o mecanismo de banco de dados aplica o último bom plano e monitora seu desempenho. Se o plano forçado não tiver um desempenho melhor do que o plano anterior, ele não será forçado e um novo plano será compilado. Se ele superar o plano anterior, ele permanecerá forçado até que um recompile aconteça.
Use a consulta T-SQL a seguir para habilitar a correção automática do plano.
ALTER DATABASE [WideWorldImporters] SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);
Você pode exibir recomendações de ajuste automático por meio do modo de exibição de gerenciamento dinâmico, sys.dm_db_tuning_recommendations
. Essa DMV fornece detalhes, tipos e estados de recomendação. Para verificar se o ajuste automático está habilitado para um banco de dados, consulte a exibição sys.database_automatic_tuning_options
.
O ajuste automático para a Instância Gerenciada de SQL do Azure só dá suporte a FORCE LAST GOOD PLAN
.
Para habilitar notificações para ajuste automático, consulte notificações por email para ajuste automático
Gerenciamento de índice automático
O Banco de Dados SQL do Azure dá suporte ao ajuste automático de índice. Isso significa que, ao longo do tempo, o banco de dados tem a capacidade de aprender sobre cargas de trabalho existentes e fornecer recomendações sobre como adicionar ou remover índices para fornecer melhor desempenho. Como forçar planos de consulta aprimorados, o banco de dados pode ser configurado para permitir a criação ou remoção automática de índice, dependendo do desempenho do índice existente.
Como alternativa, use a consulta a seguir para ver os recursos de ajuste automático habilitados em seu banco de dados.
SELECT name,
desired_state_desc,
actual_state_desc,
reason_desc
FROM sys.database_automatic_tuning_options
A criação de índice é intensiva em recursos e sua criação bem-sucedida é essencial para garantir que não haja nenhum efeito negativo em suas cargas de trabalho.
O Banco de Dados SQL do Azure monitora os recursos necessários para implementar novos índices automaticamente para evitar a degradação do desempenho. A ação de ajuste é atrasada até que os recursos fiquem disponíveis, por exemplo, quando os recursos necessários para cargas de trabalho existentes impedem a criação do índice.
Explorar a Análise de Desempenho de Consultas
A fase inicial de qualquer tarefa de otimização de desempenho de banco de dados envolve identificar as consultas que são as mais intensivas em recursos. Nas versões anteriores do SQL Server, isso exigia um rastreamento extensivo e um conjunto de scripts SQL intrincados, tornando o processo de coleta de dados trabalhoso.
Identificar consultas problemáticas
O Banco de Dados SQL do Azure oferece uma ferramenta chamada de Análise de Desempenho de Consultas que permite ao administrador identificar rapidamente consultas caras. Você o encontra na folha principal do Banco de Dados SQL do Azure, na seção desempenho inteligente do.
A Análise de Desempenho de Consultas no Banco de Dados SQL do Azure fornece três opções de filtragem: para consultas de execução longa, consultas de consumo de recursos superiores (que é o padrão) ou um filtro personalizado. Ele exibe as cinco principais consultas classificadas por um recurso escolhido, como CPU, E/S de Dados ou E/S de Log. Você pode analisar consultas individuais selecionando a linha dentro da grade inferior. Cada linha é marcada com uma cor distinta que corresponde à cor no grafo de barras.
A guia personalizada oferece mais flexibilidade do que as outras opções. Ele permite um exame mais personalizado dos dados de desempenho com vários menus suspensos influenciando a visualização de dados. As principais métricas incluem de CPU, de E/S de Log, de E/S de Dados e de memória, que são aspectos de desempenho limitados pela camada de serviço e recursos de computação do Banco de Dados SQL do Azure.
Se analisarmos uma consulta individual, poderemos ver a ID da consulta e a própria consulta, bem como o tipo de agregação de consulta e o período de tempo associado.
Embora a Análise de Desempenho de Consultas não mostre o plano de execução da consulta, você pode identificar rapidamente essa consulta e usar as informações para extrair o plano do Repositório de Consultas no banco de dados.
Alertas
Você pode configurar alertas de desempenho para bancos de dados no Banco de Dados SQL do Azure usando o portal do Azure. Esses alertas podem notificá-lo por email ou chamar um webhook quando uma determinada métrica (como o tamanho do banco de dados ou o uso da CPU) atingir um limite.
O processo de configuração de alertas é semelhante entre o Banco de Dados SQL e a Instância Gerenciada de SQL. Para configurar alertas de desempenho para o Banco de Dados SQL do Azure, navegue até a seção de Monitoramento de e selecione Alertas. A partir daí, você precisa estabelecer uma nova regra de alerta, definir uma condição e criar um grupo de ações.
Para obter mais informações sobre alertas para a Instância Gerenciada de SQL do Azure, visite Criar alertas para a Instância Gerenciada de SQL do Azure usando o portal do Azure. Se você estiver interessado no Banco de Dados SQL do Azure, consulte Criar alertas para o Banco de Dados SQL do Azure e o Azure Synapse Analytics usando o portal do Azure.
Azure SQL Insights
o SQL Insights do Azure aprimora sua experiência de monitoramento fornecendo visualizações interativas e prontas para uso. Você pode personalizar a coleta e a frequência de telemetria e combinar dados de várias fontes em uma única experiência de monitoramento. Ele também retém um conjunto de métricas ao longo do tempo, o que permite investigar problemas de desempenho que você pode ter tido no passado.
Importante
Sugerimos configurar o SQL Insights do Azure somente depois que o banco de dados migrado tiver sido totalmente integrado à produção. Isso impede que a ferramenta capture dados barulhentos durante a fase de migração e teste.
Para começar a usar o SQL Insights, você precisa de uma máquina virtual dedicada que monitore e colete remotamente dados de seus servidores SQL. Essa máquina virtual dedicada precisa ter os seguintes componentes instalados:
- Agente do Azure Monitor
- Extensão de Insights de Carga de Trabalho
Além disso, os seguintes componentes são necessários para configurar o SQL Insights.
Perfil de monitoramento – agrupe os servidores, as instâncias ou os bancos de dados a serem monitorados.
Workspace do Log Analytics – para onde enviar os dados de monitoramento de SQL.
Configurações de coleta – você pode personalizar a coleta de dados para seu perfil. As configurações padrão abrangem a maioria dos cenários de monitoramento e geralmente não precisam ser alteradas.
Eventos estendidos
ferramenta de de Eventos Estendidos é um sistema de monitoramento robusto que captura atividades detalhadas de servidor e banco de dados. Os filtros podem ser aplicados para reduzir a sobrecarga da coleta de dados e se concentrar em problemas de desempenho específicos. Todas as ofertas do SQL do Azure dão suporte a Eventos Estendidos.
Embora a instalação de Eventos Estendidos seja semelhante no SQL Server, no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure, este módulo se concentra em suas diferenças, não no ensino do processo de instalação.
Aqui estão algumas diferenças importantes ao configurar eventos estendidos no Banco de Dados SQL do Azure:
Transact-SQL: ao executar o comando
CREATE EVENT SESSION
no SQL Server, use a cláusulaON SERVER
. Mas, no Banco de Dados SQL do Azure, você usa a cláusulaON DATABASE
. A cláusulaON DATABASE
também se aplica aos comandosALTER EVENT SESSION
eDROP EVENT SESSION
Transact-SQL. O Banco de Dados SQL do Azure dá suporte apenas a sessões com escopo de banco de dados.sessões no escopo do banco de dados: eventos estendidos são fundados no modelo de isolamento de locatário único no Banco de Dados SQL do Azure. Uma sessão de evento em um banco de dados não pode acessar dados ou eventos de outro banco de dados. Não é possível emitir uma instrução
CREATE EVENT SESSION
no contexto do banco de dados mestre¹.Armazenamento: como você não tem acesso ao sistema de arquivos do servidor em que o banco de dados reside no Banco de Dados SQL do Azure, você pode configurar um destino de conta de armazenamento para armazenar suas sessões de evento estendidas.