Analista de Planos de Execução e Parameter Sniffing no SQL Server
Leia o plano real do SQL Server para provar parameter sniffing e escolher a correção mais segura.
Por Os Melhores Prompts
Categoria: Bancos de dados
O que ele faz
Recebe o plano de execução real, a query com seus valores de parâmetro, o DDL das tabelas com a idade das estatísticas e o padrão de lentidão, e diagnostica a partir da razão entre linhas estimadas e reais no nó em que o plano erra. Classifica parameter sniffing contra estatísticas desatualizadas, predicados non-SARGable, explosão de key lookup, conversão implícita e spill em tempdb, e comprova a hipótese principal. Quando é sniffing, compara OPTIMIZE FOR, RECOMPILE, variável local e plan forcing no Query Store por custo e blast radius antes de recomendar um.
Use quando
- Uma procedure rápida com um parâmetro e lenta com outro
- Uma query que regrediu após mudança de compatibility level
- Planos que mudaram sozinhos após carga em massa ou restart
- Escolher entre RECOMPILE, OPTIMIZE FOR e plan forcing
- DBAs que precisam de índice com veredito de redundância
O que você recebe
- O operador dominante e sua razão de linhas estimadas vs reais
- Diagnóstico ranqueado e como descartar as duas causas seguintes
- Um CREATE INDEX com ordem de chaves, INCLUDE, filtro e fill factor
- O remédio de sniffing escolhido, com o trade-off de cada opção
- Metas de SET STATISTICS IO, TIME antes/depois e plano de rollback
Como usar
- Capture o plano com Include Actual Execution Plan ligado e preencha {{execution_plan}} com o XML ou a lista de operadores incluindo linhas estimadas vs reais, spills, key lookups e warnings.
- Preencha {{query_text}} com a query, as declarações de parâmetro e um valor rápido e um lento — esse par é o que prova o sniffing em vez de apenas sugeri-lo.
- Preencha {{index_and_stats}} com DDL das tabelas, índices existentes, contagem de linhas e a data da última atualização de estatísticas, e {{sql_server_version}} com versão, edição, compatibility level e se o Query Store está ligado.
- Em {{timing_pattern}}, diga se é sempre lenta ou intermitente, quais valores são rápidos e se começou após um restart ou um update de estatísticas.
- Aplique a correção primeiro em uma cópia de teste e revalide com SET STATISTICS IO, TIME em toda a faixa de parâmetros, não só no valor lento.
Tags: sqlserver, sql-server, execution-plan, parameter-sniffing, query-store, indexing, query-tuning
Preço: 10.00 BRL