{"id":8779,"date":"2026-09-29T13:00:51","date_gmt":"2026-09-29T16:00:51","guid":{"rendered":"https:\/\/powertuning.com.br\/blog\/?p=8779"},"modified":"2026-09-29T09:52:06","modified_gmt":"2026-09-29T12:52:06","slug":"de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server","status":"publish","type":"post","link":"https:\/\/powertuning.com.br\/blog\/de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server\/","title":{"rendered":"De mais de 2 horas para 16 segundos: como reduzimos em 99,80% o tempo de um relat\u00f3rio no SQL Server"},"content":{"rendered":"<p class=\"article-editor-paragraph\"><strong>\u201cAntes eu podia colocar o relat\u00f3rio para executar e ir tirar uma soneca. Agora n\u00e3o d\u00e1 nem tempo de se levantar da cadeira.\u201d<\/strong> \ud83d\ude02<\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Imagino que essa tenha sido a rea\u00e7\u00e3o do cliente ap\u00f3s ver o resultado de um trabalho de Tuning realizado em seu ambiente SQL Server:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8781\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server\/attachment\/1789473605007\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473605007.png\" data-orig-size=\"744,237\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1789473605007\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473605007.png\" class=\"alignnone wp-image-8781 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473605007.png\" alt=\"\" width=\"744\" height=\"237\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473605007.png 744w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473605007-300x96.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/p>\n<p class=\"article-editor-paragraph\">O relat\u00f3rio analisado levava mais de duas horas para ser conclu\u00eddo. Durante sua execu\u00e7\u00e3o, consumia uma quantidade expressiva de CPU, realizava centenas de milh\u00f5es de leituras l\u00f3gicas e provocava press\u00e3o sobre recursos importantes do ambiente.<\/p>\n<p class=\"article-editor-paragraph\">Ap\u00f3s a otimiza\u00e7\u00e3o, o mesmo relat\u00f3rio passou a executar em aproximadamente <strong>16 segundos.<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Mais do que reduzir o tempo de uma consulta, o trabalho eliminou um importante ponto de conten\u00e7\u00e3o no ambiente.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">O problema foi identificado pelo Power Alerts<\/h3>\n<p class=\"article-editor-paragraph\">O diagn\u00f3stico come\u00e7ou a partir das nossas rotinas de monitoramento do Power Alerts, que identificaram a consulta ofensora de CPU.<\/p>\n<p class=\"article-editor-paragraph\">Com apenas 40 minutos de execu\u00e7\u00e3o, a consulta j\u00e1 havia consumido mais de 34 milh\u00f5es de milissegundos de CPU, atingindo o pico de 100% de uso da CPU do servidor.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">Mas por que alertou s\u00f3 depois de 40 minutos em execu\u00e7\u00e3o?<\/h3>\n<p class=\"article-editor-paragraph\">Pensando em diversos cen\u00e1rios para uma variedade de clientes, <strong>nossos alertas possuem thresholds configur\u00e1veis,<\/strong> por raz\u00f5es internas, esse cliente havia configurado o threshold para alertar <strong>apenas quando a CPU atingisse 98%<\/strong> de uso, e isso <strong>permanecesse por mais de 5 minutos seguidos<\/strong>, se n\u00e3o fosse isso, o alerta j\u00e1 teria sido disparado muito antes.<\/p>\n<p class=\"article-editor-paragraph\">Um detalhe, \u00e9 que este cliente est\u00e1 utilizando uma vers\u00e3o mais antiga dos alertas, e mesmo assim atendeu a necessidade para este ambiente, agora <strong>imagine com vers\u00e3o atual que tem mais de 98 mil linhas de c\u00f3digo?!\u00a0<\/strong><\/p>\n<p class=\"article-editor-paragraph\">A seguir um print de uma parte do e-mail enviado para o cliente, j\u00e1 era poss\u00edvel identificar pela coluna <strong>CPU Delta<\/strong>, o ofensor com maior consumo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8782\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server\/attachment\/1789473639513\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473639513.png\" data-orig-size=\"744,340\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1789473639513\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473639513.png\" class=\"alignnone wp-image-8782 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473639513.png\" alt=\"\" width=\"744\" height=\"340\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473639513.png 744w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473639513-300x137.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Esse ponto \u00e9 essencial em trabalhos de performance: antes de alterar uma consulta, \u00e9 necess\u00e1rio entender qual processo est\u00e1 realmente impactando o ambiente, com que frequ\u00eancia isso acontece e quais recursos est\u00e3o sendo consumidos.<\/p>\n<p class=\"article-editor-paragraph\">Nesse caso, o monitoramento permitiu encontrar uma consulta que, apesar de representar apenas um relat\u00f3rio para o usu\u00e1rio, tinha um impacto significativo no SQL Server.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">O cen\u00e1rio encontrado<\/h3>\n<p class=\"article-editor-paragraph\">A consulta apresentava uma estrutura complexa, com:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Diversas CTEs;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">M\u00faltiplos JOINs;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Opera\u00e7\u00f5es com OUTER APPLY;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Regras de neg\u00f3cio aplicadas durante a execu\u00e7\u00e3o;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Processamento de grandes volumes de dados em tempo de execu\u00e7\u00e3o.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">O relat\u00f3rio tamb\u00e9m precisava consolidar informa\u00e7\u00f5es de atendimento, contratos, clientes, movimenta\u00e7\u00f5es financeiras etc.<\/p>\n<p class=\"article-editor-paragraph\">O resultado era uma consulta funcional do ponto de vista do neg\u00f3cio, mas muito custosa do ponto de vista computacional.<\/p>\n<p class=\"article-editor-paragraph\"><strong>Vejam os indicadores antes do tuning:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8783\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server\/attachment\/1789473654239\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473654239.png\" data-orig-size=\"885,510\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1789473654239\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473654239.png\" class=\"alignnone wp-image-8783 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473654239.png\" alt=\"\" width=\"885\" height=\"510\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473654239.png 885w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473654239-300x173.png 300w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473654239-768x443.png 768w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">O SQL Server do cliente possu\u00eda <strong>140 GB de mem\u00f3ria<\/strong> <strong>configurada<\/strong>. Mesmo assim, durante a execu\u00e7\u00e3o do relat\u00f3rio, foi poss\u00edvel observar queda no Page Life Expectancy, aumento no I\/O (<strong>mais de 6 milh\u00f5es de p\u00e1ginas foram buscadas no disco<\/strong>) e disputa pelo Buffer Pool.<\/p>\n<p class=\"article-editor-paragraph\">\u00c9 importante destacar que leituras l\u00f3gicas n\u00e3o significam que todo o volume de dados permaneceu armazenado simultaneamente na mem\u00f3ria. Elas representam o volume de p\u00e1ginas de 8 KB acessadas pela consulta ao longo da execu\u00e7\u00e3o.<\/p>\n<p class=\"article-editor-paragraph\">Ainda assim, acessar aproximadamente <strong>5 TB<\/strong> em uma consulta executada em um ambiente com 140 GB de mem\u00f3ria demonstra o tamanho da press\u00e3o provocada sobre o cache de dados, o armazenamento e os demais processos concorrentes.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">O que estava acontecendo<\/h3>\n<p class=\"article-editor-paragraph\">As etapas da consulta eram processadas em tempo de execu\u00e7\u00e3o. Dessa forma, grandes conjuntos de dados poderiam ser percorridos e reprocessados durante as opera\u00e7\u00f5es de jun\u00e7\u00e3o, filtragem e consolida\u00e7\u00e3o.<\/p>\n<p class=\"article-editor-paragraph\">Esse tipo de comportamento pode provocar:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Aumento no consumo de CPU;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Maior quantidade de leituras l\u00f3gicas;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Press\u00e3o sobre o Buffer Pool;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Queda no Page Life Expectancy;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Aumento de leituras f\u00edsicas;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Disputa por I\/O;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Eviction de p\u00e1ginas \u00fateis;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Degrada\u00e7\u00e3o do desempenho de processos concorrentes.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">Uma consulta pesada n\u00e3o afeta apenas o usu\u00e1rio que est\u00e1 aguardando o relat\u00f3rio. Dependendo do ambiente, ela pode impactar aplica\u00e7\u00f5es, integra\u00e7\u00f5es, rotinas de ETL, processos financeiros e outras consultas executadas simultaneamente.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">A estrat\u00e9gia aplicada<\/h3>\n<p class=\"article-editor-paragraph\">A estrat\u00e9gia adotada foi materializar algumas etapas intermedi\u00e1rias da consulta em <strong>tabelas tempor\u00e1rias<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Com isso, foi poss\u00edvel separar o processamento em fases mais controladas, reduzir o reprocessamento de grandes conjuntos de dados e melhorar o acesso \u00e0s informa\u00e7\u00f5es intermedi\u00e1rias.<\/p>\n<p class=\"article-editor-paragraph\">Tamb\u00e9m foram utilizados \u00edndices nas tabelas tempor\u00e1rias para tornar as buscas e jun\u00e7\u00f5es mais eficientes.<\/p>\n<p class=\"article-editor-paragraph\">A abordagem permitiu:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Reduzir o processamento repetido de grandes volumes;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Melhorar o acesso aos resultados intermedi\u00e1rios;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Aplicar \u00edndices de forma direcionada;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Diminuir o custo de JOINs;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Reduzir o impacto dos OUTER APPLYs;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Tornar o plano de execu\u00e7\u00e3o mais eficiente;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Reduzir significativamente o volume de leituras l\u00f3gicas;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Diminuir o consumo de CPU;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Liberar recursos para as demais cargas do ambiente.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">O objetivo n\u00e3o foi simplesmente trocar CTEs por tabelas tempor\u00e1rias. O ponto principal foi entender como cada etapa era processada, quais resultados poderiam ser materializados e onde o acesso aos dados poderia ser otimizado.<\/p>\n<p class=\"article-editor-paragraph\"><strong>Indicadores ap\u00f3s o tuning:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"8784\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server\/attachment\/1789473679283\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473679283.png\" data-orig-size=\"885,582\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1789473679283\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473679283.png\" class=\"alignnone wp-image-8784 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473679283.png\" alt=\"\" width=\"885\" height=\"582\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473679283.png 885w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473679283-300x197.png 300w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/1789473679283-768x505.png 768w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Na pr\u00e1tica, o resultado foi:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">De mais de 2 horas para aproximadamente 16 segundos;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Redu\u00e7\u00e3o de 99,80% na dura\u00e7\u00e3o total;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Redu\u00e7\u00e3o de 99,98% no consumo de CPU;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Redu\u00e7\u00e3o de 98,90% nas leituras l\u00f3gicas;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">De aproximadamente 5 TB percorridos para cerca de 60 GB;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Menor press\u00e3o sobre o Buffer Pool;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Menor impacto sobre o I\/O;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Mais recursos dispon\u00edveis para as demais opera\u00e7\u00f5es do ambiente.<\/p>\n<\/li>\n<\/ul>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">Por que esse resultado \u00e9 importante?<\/h3>\n<p class=\"article-editor-paragraph\">Uma redu\u00e7\u00e3o de tempo dessa magnitude melhora diretamente a experi\u00eancia do usu\u00e1rio, mas os ganhos v\u00e3o muito al\u00e9m do relat\u00f3rio.<\/p>\n<p class=\"article-editor-paragraph\">Ao reduzir o volume de dados processado e o consumo de CPU, o tuning tamb\u00e9m ajuda a:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Evitar conten\u00e7\u00e3o entre consultas;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Reduzir filas de I\/O;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Preservar p\u00e1ginas importantes no Buffer Pool;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Diminuir o risco de lentid\u00e3o em hor\u00e1rios de maior concorr\u00eancia;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Melhorar a previsibilidade do ambiente;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Reduzir a necessidade de executar novamente relat\u00f3rios que falharam por timeout;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Aumentar a disponibilidade de recursos para aplica\u00e7\u00f5es cr\u00edticas.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">Esse caso refor\u00e7a uma premissa importante de performance em bancos de dados:<\/p>\n<p class=\"article-editor-paragraph\">&gt; N\u00e3o basta fazer a consulta funcionar. \u00c9 necess\u00e1rio entender como ela consome os recursos do ambiente.<\/p>\n<p class=\"article-editor-paragraph\">Uma consulta pode retornar o resultado esperado e, ainda assim, ser extremamente prejudicial ao SQL Server.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<h3 class=\"article-editor-heading\">Monitoramento, diagn\u00f3stico e tuning precisam caminhar juntos<\/h3>\n<p class=\"article-editor-paragraph\">Sem monitoramento, a consulta poderia continuar sendo executada por mais de duas horas, consumindo mais de 20 horas de CPU acumulada e percorrendo aproximadamente 5 TB de dados.<\/p>\n<p class=\"article-editor-paragraph\">Sem diagn\u00f3stico, seria dif\u00edcil entender a origem do problema.<\/p>\n<p class=\"article-editor-paragraph\">Sem tuning, o ambiente continuaria sujeito \u00e0 press\u00e3o no Buffer Pool, ao aumento de I\/O e \u00e0 disputa de recursos com outras cargas importantes.<\/p>\n<p class=\"article-editor-paragraph\">O Power Alerts foi fundamental para identificar o problema no ambiente real. A an\u00e1lise do plano de execu\u00e7\u00e3o e o trabalho de tuning permitiram transformar os dados coletados em uma a\u00e7\u00e3o pr\u00e1tica de otimiza\u00e7\u00e3o.<\/p>\n<p class=\"article-editor-paragraph\">Esse \u00e9 o valor de uma abordagem orientada por evid\u00eancias: identificar, medir, otimizar e validar o resultado.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\">Conclus\u00e3o<\/p>\n<p class=\"article-editor-paragraph\">O caso mostra como uma consulta complexa pode impactar significativamente um ambiente SQL Server, mesmo quando atende corretamente \u00e0 necessidade do neg\u00f3cio.<\/p>\n<p class=\"article-editor-paragraph\">Por meio do monitoramento do Power Alerts e de uma estrat\u00e9gia direcionada de tuning, foi poss\u00edvel reduzir:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">O tempo de execu\u00e7\u00e3o de mais de 2 horas para 16 segundos;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">O consumo de CPU em 99,98%;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">As leituras l\u00f3gicas em 98,90%;<\/p>\n<\/li>\n<\/ul>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">O volume percorrido de aproximadamente 5 TB para cerca de 60 GB.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">Performance n\u00e3o \u00e9 apenas velocidade. \u00c9 efici\u00eancia, estabilidade, previsibilidade e capacidade de o ambiente continuar atendendo \u00e0s demais demandas.<\/p>\n<p class=\"article-editor-paragraph\"><strong>Pensou em tuning, pensou em Power Tuning.<\/strong><\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\">Artigo desenvolvido por: <a class=\"article-editor-mention\" contenteditable=\"false\" href=\"https:\/\/www.linkedin.com\/preload\/?_bprMode=vanilla#\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" data-type=\"mention\" data-entity-urn=\"urn:li:fsd_profile:ACoAADFrTFkBCTetP6-Mpl9lUIfgsNak84I6YKI\">Leonardo Albuquerque<\/a> (Tech Leader).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u201cAntes eu podia colocar o relat\u00f3rio para executar e ir tirar uma soneca. Agora n\u00e3o d\u00e1 nem tempo de se levantar da cadeira.\u201d \ud83d\ude02 Imagino que essa tenha sido a rea\u00e7\u00e3o do cliente ap\u00f3s ver o resultado de um trabalho de Tuning realizado em seu ambiente SQL Server: O relat\u00f3rio analisado levava mais de duas&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/powertuning.com.br\/blog\/de-mais-de-2-horas-para-16-segundos-como-reduzimos-em-9980-o-tempo-de-um-relatorio-no-sql-server\/\">Leia mais<\/a><\/p>\n","protected":false},"author":32,"featured_media":8785,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_exactmetrics_skip_tracking":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false,"_members_access_role":[],"_members_access_error":""},"categories":[62,59],"tags":[1516,1514,625,1518,46,1515,270,518,511,1085,1089,141,35,1517,531],"class_list":["post-8779","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-casos-reais-de-clientes","category-tuning","tag-buffer-pool","tag-consumo-de-cpu","tag-diagnostico-de-performance","tag-i-o","tag-indices","tag-leituras-logicas","tag-monitoramento-de-banco-de-dados","tag-otimizacao-de-consultas","tag-page-life-expectancy","tag-performance-tuning","tag-plano-de-execucao","tag-power-alerts","tag-sql-server","tag-tabelas-temporarias","tag-tuning-de-queries"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2026\/09\/Capa-Blog-2026.png","_links":{"self":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/8779","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/comments?post=8779"}],"version-history":[{"count":1,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/8779\/revisions"}],"predecessor-version":[{"id":8786,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/8779\/revisions\/8786"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/media\/8785"}],"wp:attachment":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/media?parent=8779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/categories?post=8779"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/tags?post=8779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}