{"id":10221,"date":"2019-06-01T10:37:43","date_gmt":"2019-06-01T13:37:43","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=10221"},"modified":"2019-06-03T12:29:14","modified_gmt":"2019-06-03T15:29:14","slug":"query-store-05-lock-gerado-ao-executar-o-comando-set-query_store-off","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2019\/06\/01\/query-store-05-lock-gerado-ao-executar-o-comando-set-query_store-off\/","title":{"rendered":"Query Store (#05) &#8211; Lock gerado ao executar o comando SET QUERY_STORE = OFF"},"content":{"rendered":"<p>Fala Pessoal,<\/p>\n<p>Continuando a s\u00e9rie sobre o <strong>Query Store<\/strong>, hoje vou compartilhar um outro problema que tive no meu dia a dia.<\/p>\n<p>Mais uma vez utilizei essa baita ferramenta que \u00e9 o Query Store para agilizar meu trabalho de Tuning de queries em um cliente.<\/p>\n<p>Ferramenta sensacional para isso. Te d\u00e1 uma produtividade muito grande nesse trabalho.<\/p>\n<p>Identificada e melhorada v\u00e1rias queries, fui desligar o Query Store, pois j\u00e1 tinha finalizado o trabalho.<\/p>\n<p>Quando finalizamos o Query Store, ele faz um <strong>Flush<\/strong> das informa\u00e7\u00f5es que ainda est\u00e1 mantendo em mem\u00f3ria para o disco.<\/p>\n<p>Isso pode demorar um pouco dependendo da quantidade de dados que estiver na mem\u00f3ria.<\/p>\n<p><strong>Mas o que n\u00e3o esperamos \u00e9 que isso gere um lock em nosso ambiente, certo?<\/strong><\/p>\n<p>Pois \u00e9&#8230; Foi o que aconteceu conforme pode ser visto abaixo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10223\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg\" alt=\"\" width=\"1434\" height=\"412\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1.jpg 2166w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-300x86.jpg 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-1024x294.jpg 1024w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-768x221.jpg 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-1536x441.jpg 1536w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-2048x588.jpg 2048w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-700x201.jpg 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-410x118.jpg 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-100x29.jpg 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-275x79.jpg 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/02\/QueryStore_3_1-20x6.jpg 20w\" sizes=\"auto, (max-width: 1434px) 100vw, 1434px\" \/><\/p>\n<p>A sess\u00e3o <strong>753<\/strong>, que estava desligando o Query Store, bloqueou a <strong>773\u00a0<\/strong>(n\u00e3o deu para ver no print pois tinham 37 sess\u00f5es no lock), que gerou uma cadeia de lock bloqueando v\u00e1rias outras queries.<\/p>\n<p>Nesse caso, ap\u00f3s esperar 1 minuto, matei a sess\u00e3o753 que estava desligando o Query Store e, ap\u00f3s um tempo, consegui rodar o comando novamente sem o lock.<\/p>\n<p>Trocando alguns e-mails com a <strong>Erin Stellato<\/strong> e o <strong>Ola Hallengren <\/strong>sobre esse problema, uma das possibilidades era de que isso tamb\u00e9m era um BUG e que o FIX que mostrei no post anterior (<a href=\"https:\/\/www.fabriciolima.net\/blog\/2019\/02\/13\/query-store-3-lock-grande-ao-tentar-limpar-o-query-store\/\" target=\"_blank\" rel=\"noopener\">Clique aqui para ler<\/a>), &#8220;poderia&#8221; resolver esse problema tamb\u00e9m.<\/p>\n<p>Falei poderia, pois o FIX diz que resolveu o problema de lock para o ALTER DATABASE SET <strong>QUERY_STORE CLEAR<\/strong>, contudo, como o<strong> SET QUERY_STORE = OFF<\/strong> tamb\u00e9m \u00e9 uma opera\u00e7\u00e3o de &#8220;ALTER DATABASE&#8221;, imaginamos que era poss\u00edvel que tamb\u00e9m tivesse resolvido junto.<\/p>\n<p>N\u00e3o tivemos uma resposta oficial da microsoft sobre esse problema espec\u00edfico.<\/p>\n<p>A inst\u00e2ncia desse cliente estava na vers\u00e3o <strong>SQL Server 2016 SP2 CU4<\/strong> e o <strong>FIX<\/strong> foi liberado no <strong>CU5 para o SP2 do SQL 2016<\/strong>.<\/p>\n<p>Logo, antes de usar o Query Store novamente nesse cliente, pedi para que fosse atualizado o SQL Server.<\/p>\n<p>\u00c9 isso a\u00ed pessoal, mesma dica do post anterior, atualize seu SQL Server antes de usar o Query Store e, se poss\u00edvel, habilite, desabilite e limpe em hor\u00e1rios de pouco movimento para reduzir a chance de acontecer algo como esse do exemplo.<\/p>\n<p>Em ambientes com banco tranquilo, \u00e9 dif\u00edcil disso acontecer. Vai acontecer em bancos pesados com muita query Ad Hoc rodando que grava muita coisa no Query Store. Mas isso \u00e9 assunto para os pr\u00f3ximos posts.<\/p>\n<p>\u00c9 isso ai pessoal, at\u00e9 o pr\u00f3ximo post da s\u00e9rie sobre o Query Store.<\/p>\n<p>Caso n\u00e3o tenha lido o post anterior:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2019\/02\/06\/query-store-01-introducao\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Query Store (#1) \u2013 Introdu\u00e7\u00e3o<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2019\/02\/11\/query-store-2-voce-esta-utilizando-o-query-store-do-sql-server-em-producao\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Query Store (#2) \u2013 Voc\u00ea est\u00e1 utilizando o Query Store do SQL Server em produ\u00e7\u00e3o?<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2019\/02\/13\/query-store-3-lock-grande-ao-tentar-limpar-o-query-store\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Query Store (#03) \u2013 Lock grande ao tentar limpar o Query Store<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2019\/02\/26\/query-store-04-melhores-praticas-para-habilitar-o-query-store\/\" target=\"_blank\" rel=\"noopener\">Query Store (#04) \u2013 Melhores pr\u00e1ticas para habilitar o Query Store<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>Gostou da dica?<\/b><\/p>\n<p>Curta, comente, compartilhe com os coleguinhas\u2026<\/p>\n<p>Assine meu canal no\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.youtube.com\/channel\/UCeBRAO_LLrUdSrOXIywjzRA\" target=\"_blank\" rel=\"external noopener noreferrer nofollow\" data-wpel-link=\"external\">Youtube<\/a>\u00a0, curta a\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"external noopener noreferrer nofollow\" data-wpel-link=\"external\">P\u00e1gina no Facebook<\/a>\u00a0 e siga nosso perfil no\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.instagram.com\/fabriciolimasolucoesembd\/\" target=\"_blank\" rel=\"noopener external noreferrer nofollow\" data-wpel-link=\"external\">Instagram<\/a>\u00a0para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima.<\/p>\n<p>Microsoft Data Platform MVP<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala Pessoal, Continuando a s\u00e9rie sobre o Query Store, hoje vou compartilhar um outro problema que tive no meu dia a dia. Mais uma vez utilizei essa baita ferramenta que \u00e9 o Query Store para agilizar meu trabalho de Tuning de queries em um cliente. Ferramenta sensacional para isso. Te d\u00e1 uma produtividade muito grande [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[3,6,33,280],"tags":[1691,1619,1429,1687,1688,1689,63,1258,1464,1362,1686,1690,1618,1463,40,953],"class_list":["post-10221","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-sql-server","category-virtual-pass-br","tag-alwaystuningyourdata","tag-desempenho-sql-server","tag-lentidao-sql-server","tag-monitorar-cpu","tag-monitorar-disco","tag-monitorar-memoria","tag-performance","tag-problema-performance","tag-query-store","tag-sql-server-2016","tag-sql-server-2017","tag-sql-server-2019","tag-sql-server-lento","tag-sql-server-query-store","tag-tuning","tag-tuning-sql-server"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/10221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=10221"}],"version-history":[{"count":7,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/10221\/revisions"}],"predecessor-version":[{"id":10550,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/10221\/revisions\/10550"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=10221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=10221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=10221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}