Loading…

Query Store (#01) – Introdução

Fala Pessoal,

O Query Store hoje já não é novidade para ninguém, disponibilizado desde o SQL Server 2016, temos vários posts e vídeos que já falam um pouco dessa feature.

Contudo, pretendo fazer uma série de post para tentar cobrir de uma forma mais detalhada as funcionalidades, benefícios e possíveis problemas do Query Store.

Eu ouvi problemas Fabrício?

Sim.

Também já tive problemas implantando o Query Store nos clientes. Vou compartilhar essas experiências de uso no dia a dia com vocês nos próximos posts.

Caso ainda não conheça o Query Store, segue uma breve introdução com minhas palavras:

O que é Query Store?

Query Store é uma funcionalidade que surgiu no SQL Server 2016, que nos ajuda na análise de problemas de performance e está disponível desde a versão Express até a versão Enterprise. Ou seja, você vai poder usar de qualquer forma quando migrar para o SQL Server 2016 ou superior.

Dica de ouro: Migre para o SQL Server 2016 ou superior!!!

Como já disse em minhas palestras, Tuning é o assunto mais requisitado por clientes para Consultorias. Dessa forma, Query Store é um assunto obrigatório para todos nós que trabalhamos com consultorias ou administrando um SQL Server em uma empresa.

O que faz o Query Store?

O Query Store armazena um histórico de execução de queries e planos de execução incluindo estatísticas de consumo das queries após sua execução. Além de armazenar, ele também disponibiliza gráficos e DMV’s para que possamos utilizar essas informações valiosas.

O que isso me ajuda no meu Dia a Dia de DBA?

Seguem alguns exemplos de como ele pode nos ajudar no nosso Dia a Dia de DBA:

  • Ele nos ajuda a identificar quando uma procedure que normalmente é executada de forma rápida, de uma hora para a outra, passa a rodar lenta. Com o Query Store, conseguimos ver os dois planos de execução dessa procedure (rápido e o lento), comparar, identificar o motivo e até forçar de forma muito simples o uso do plano que é o mais rápido.
  • Quando migramos o SQL Server de versão, com as novas regras de otimização do Query Optimizer dos níveis de compatibilidades mais recentes, a maioria das queries tendem a rodar igual ou mais rápidas. Contudo, uma query ou outra pode rodar de forma mais lenta (isso acontece demais no meu dia a dia). Com o Query Store vamos conseguir identificar esse problema de forma muito mais simples nas migrações para o SQL Server 2016.
  • Temos essas informações mesmo após um boot, diferentemente das DMV’s que são reiniciadas após um Restart do SQL Server. O cliente reinicia o SQL Server e depois chama o consultor para descobrir o que era. Agora nós consultores, teremos mais informações com o Query Store para analisar um problema.
  • Identificar as queries mais executadas;
  • Identificar as queries mais demoradas;
  • Identificar as queries que mais consumiram CPU, Disco e Memória;
  • Etc…

Informação importante: O Query Store é habilitado por banco de dados. Não é a nível de toda a instância do SQL Server.

Qual o custo do Query Store? Ele vai parar meu Banco?

Assim como o Profile e Extended Event, o Query Store também tem um custo mínimo para armazenar essas informações. Contudo, esse custo vai depender muito das configurações que você fez para habilitar o Query Store e do volume transacional do seu ambiente.

Tem algumas configurações que fazem o Query Store guardar mais ou menos informações para reduzir esse consumo.

Além desse pequeno processamento que temos a mais, já tive alguns problemas um pouco mais graves conforme abaixo.

Devo habilitar o Query Store para todos os meus ambientes sem medo?

Se seu ambiente é muito transacional e com muita query Ad hoc (que geram planos diferentes), ao habilitar, fique de olho no seu monitoramento.

Em um banco grande, com muita query Adhoc, tive um problema com o query store que gerou waits nas queries e lentidão no ambiente.

Também já tive problema na hora de parar o Query Store e de limpar o Query Store.

Falaremos em breve sobre esses problemas.

Onde essas informações ficam armazenadas?

Por questões de performance essas informações são armazenadas em memória inicialmente e de forma assíncrona são salvas em disco para que não se apaguem.

Em caso de crash, podemos perder poucas informações que estavam em memória e ainda não foram salvas em disco, mas será uma perda pequena. Teremos muitas informações de performance para analisar no ambiente.

Como habilito e uso o Query Store?

Basta habilitar o Query Store na sua base de dados e já estará coletando as informações.

ALTER DATABASE NOME_BASE SET QUERY_STORE = ON
Gostei desse negócio! Quero conhecer mais sobre o assunto.

Nos próximos posts vamos começar a detalhar mais essas informações e realizar testes práticos para nos ajudar em nosso aprendizado sobre o Query Store. Esse não tem jeito, você terá que aprender uma hora ou outra.

Não percam os próximos posts!

Gostou da dica?

Curta, comente, compartilhe com os coleguinhas…

Assine meu canal no Youtube , curta a Página no Facebook  e siga nosso perfil no Instagram para receber Dicas de Leituras e Eventos sobre SQL Server.

Abraços,

Fabrício Lima.

Microsoft Data Platform MVP

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

3 thoughts on “Query Store (#01) – Introdução

  1. Ele grava todas as vezes que sao executadas procedures?….
    Referente a espaço em disco, como fica? Aumenta muito devido a gravar o tempo todo?
    Achei muito interessante essa feature, mas espaço em disco e uma coisa que muito me preocupa…

Deixe uma resposta para Fabrício LimaCancelar resposta

%d blogueiros gostam disto: