Query Store (#06) – Queries do BD Travadas com o Wait QDS_STMT
*****Obs.: Esse post estava no meu rascunho desde o ano passado e o problema aconteceu em 2017… Sorry…*****
Fala Pessoal,
Segue mais uma experiência que tive utilizando o Query Store.
O Query Store já estava habilitado no ambiente a algum tempo e funcionando normalmente, me ajudando a encontrar queries problemáticas e a solucioná-las.
Em uma bela tarde de sol, dessas com um pôr do sol bonito, todos os usuários começaram a reclamar… #treta
Ao olhar o banco, nos deparamos com essa situação abaixo:
264 conexões em execução na sp_Whoisactive. WOW!!!
Olhem o Wait dessas queries: QDS_STMT
Esse wait ocorre quando ocorre uma espera para inserir novos registros no local da memória onde as informações das queries executadas são armazenados pelo Query Store.
Ambiente sendo impactado pelo Query Store.
No mesmo momento executamos ALTER DATABASE NOME SET QUERY_STORE = OFF e as conexões foram liberadas.
No Pass Summit de 2017 mostrei esse problema para algumas pessoas, inclusive para o Dejan Krakovic que pertence ao time que desenvolveu o Query Store, mas não existia uma explicação naquele momento. Após o Summit trocamos algumas mensagens, mas esse problema específico ficou sem uma resposta.
Foi dito que houveram melhorias no Query Store, mas sem dizer nada específico sobre esse problema.
Isso aconteceu em 2017 (tem bastante tempo) e, de lá para cá, tivemos muitas atualizações da feature para melhorias e solução de problemas. Mas, não consigo garantir que isso não vai acontecer novamente.
Só fiquem de olho em ambientes grandes e com um número alto de queries Ad Hoc.
Agora no SQL Server 2019 conseguimos parametrizar melhor o query store para logar menos registros e reduzir a chance desse problema acontecer.
Para quem não viu meu post do Pass Summit, esse é o Dejan Krakovic, desenvolvedor do time que construiu o Query Store:
É isso ai, pessoal, já contei os 3 problemas que tive usando o Query Store.
Até os próximos posts da série sobre o Query Store!
Caso tenham perdido os posts anteriores:
- Query Store (#1) – Introdução
- Query Store (#2) – Você está utilizando o Query Store do SQL Server em produção?
- Query Store (#03) – Lock grande ao tentar limpar o Query Store
- Query Store (#04) – Melhores práticas para habilitar o Query Store
- Query Store (#05) – Lock gerado ao executar o comando SET QUERY_STORE = OFF
Curta, comente, compartilhe…
Curta nossa página no Facebook , LinkedIn e Instagram para receber Dicas de Leituras, Vídeos e Eventos sobre SQL Server.
Até a próxima.
Abraços,
Fabrício Lima
CEO na Fabrício Lima Soluções em BD
Microsoft Data Platform MVP
Instagram:@fabriciofrancalima
Linkedin: https://www.linkedin.com/in/fabriciofrancalima/
Consultoria: [email protected]