Monitorizar o desempenho da base de dados
Uma grande parte das técnicas de solução de problemas que você usaria para solucionar problemas de desempenho do banco de dados permanece a mesma no Azure SQL.
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 Plataforma como Serviço (PaaS), o Banco de Dados SQL do Azure e a Instância Gerenciada 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.
Compare os resultados de desempenho com a sua linha de base
O processo de estabelecimento de 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 medições de dados que refletem o desempenho padrão do banco de dados em seu ambiente original. Essas medições podem incluir, mas não estão limitadas a, uso da CPU, tempos de resposta, taxas de transação e taxas de erro.
Essa linha de base serve como um ponto de referência com o 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 pré-migração para identificar quaisquer discrepâncias ou problemas de desempenho. Essa comparação ajuda a entender se a migração teve algum efeito adverso no desempenho do banco de dados ou se há áreas que exigem otimização para melhorar o desempenho.
Ajuste automático
O 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 a alterações nos planos de execução causadas por modificações de esquema ou índice, ou atualizações de dados.
Você pode aplicar manualmente recomendações de ajuste usando o portal do Azure ou pode permitir que o ajuste automático aplique recomendações de ajuste de forma autônoma para você. No Banco de Dados SQL do Azure, ele também pode aprimorar o desempenho da consulta ajustando índices.
Correção automática do plano
Com a ajuda do Repositório de Consultas, o mecanismo de banco de dados pode detetar quando os planos de execução de consulta regrediram em desempenho. Embora você possa identificar manualmente um plano regressado por meio da interface do usuário, o Repositório de Consultas também oferece a opção de notificá-lo automaticamente.
No exemplo dado, uma marca de seleção aparece ao lado do Plano ID 1, indicando que o plano é forçado.
Depois de habilitar o ajuste automático, o mecanismo de banco de dados aplicará 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 ultrapassa os 10 segundos
- O plano forçado supera o anterior
Quando ocorre a imposição automática do plano, o mecanismo de banco de dados aplica o último plano válido 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 uma recompilação aconteça.
Use a seguinte consulta T-SQL para habilitar a correção automática do plano.
ALTER DATABASE [WideWorldImporters] SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);
Você pode visualizar as recomendações de ajuste automático através da visualização de gerenciamento dinâmico, sys.dm_db_tuning_recommendations
. Este Detran fornece detalhes de recomendação, tipos e estados. Para verificar se o ajuste automático está habilitado para um banco de dados, consulte o modo de exibição sys.database_automatic_tuning_options
.
O ajuste automático para a Instância Gerenciada SQL do Azure oferece suporte apenas ao FORCE LAST GOOD PLAN
.
Para habilitar notificações para ajuste automático, consulte Notificações por e-mail para ajuste automático
Gerenciamento automático de índice
O Banco de Dados SQL do Azure dá suporte ao ajuste automático de índice. Isso significa que, com o 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 um 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 índices, 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 índices consome muitos recursos e sua criação bem-sucedida é fundamental 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 é adiada até que os recursos fiquem disponíveis, por exemplo, quando os recursos necessários para cargas de trabalho existentes impedem a criação de índices.
Explore Query Performance Insight
A fase inicial de qualquer tarefa de otimização de desempenho de banco de dados envolve a identificação das consultas que consomem mais recursos. Em versões anteriores do SQL Server, isso exigia 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 Query Performance Insight 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.
O Query Performance Insight no Banco de Dados SQL do Azure fornece três opções de filtragem: para consultas de longa execução, consultas que consomem recursos (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 detalhar consultas individuais selecionando a linha dentro da grade inferior. Cada linha é marcada com uma cor distinta que corresponde à cor no gráfico 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 CPU, E/S de Log, E/S de Dados e memória, que são aspetos de desempenho limitados pela camada de serviço e recursos de computação do Banco de Dados SQL do Azure.
Se analisarmos detalhadamente uma consulta individual, poderemos ver o ID da consulta e a consulta em si, bem como o tipo de agregação de consulta e o período de tempo associado.
Embora o Query Performance Insight 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 em seu 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 e-mail 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 do SQL. Para configurar alertas de desempenho para o Banco de Dados SQL do Azure, navegue até a seção Monitoramento 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 SQL do Azure, você pode visitar Criar alertas para a Instância Gerenciada 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 Azure SQL Insights melhora sua experiência de monitoramento fornecendo visualizações interativas e prontas para uso. Você pode personalizar a coleta e a frequência da 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 encontrado no passado.
Importante
Sugerimos configurar o Azure SQL Insights somente depois que o banco de dados migrado tiver sido totalmente integrado à produção. Isso evita 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 do Workload Insights
Além disso, os seguintes componentes são necessários para configurar o SQL Insights.
Perfil de monitoramento – agrupe servidores, instâncias ou bancos de dados para monitorar.
Espaço de trabalho do Log Analytics – para onde enviar os dados de monitoramento 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 expandidos
A ferramenta Eventos Estendidos é um sistema de monitoramento robusto que captura a atividade detalhada do servidor e do banco de dados. Os filtros podem ser aplicados para reduzir a sobrecarga de coleta de dados e se concentrar em problemas de desempenho específicos. Todas as ofertas SQL do Azure suportam Eventos Estendidos.
Embora a configuração de Eventos Estendidos seja semelhante no SQL Server, no Banco de Dados SQL do Azure e na Instância Gerenciada 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
CREATE EVENT SESSION
comando no SQL Server, você usa aON SERVER
cláusula. Mas no Banco de Dados SQL do Azure, você usa aON DATABASE
cláusula. AON DATABASE
cláusula também se aplica aosALTER EVENT SESSION
comandos Transact-SQL eDROP EVENT SESSION
. O Banco de Dados SQL do Azure dá suporte apenas a sessões com escopo de banco de dados.Sessões com escopo de banco de dados: os eventos estendidos são fundados no modelo de isolamento de locatário único no Banco de Dados SQL do Azure. Uma sessão de eventos em um banco de dados não pode acessar dados ou eventos de outro banco de dados. Não é possível emitir uma
CREATE EVENT SESSION
instrução no contexto do banco de dados mestre¹.Armazenamento: como você não tem acesso ao sistema de arquivos do servidor onde seu 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 eventos estendidas.