{"id":4201,"date":"2016-04-14T10:21:48","date_gmt":"2016-04-14T12:21:48","guid":{"rendered":"http:\/\/www.fabriciolima.net\/blog\/?p=4201"},"modified":"2016-11-17T16:27:34","modified_gmt":"2016-11-17T18:27:34","slug":"casos-do-dia-a-dia-comprei-um-servidor-melhor-e-o-sql-server-esta-mais-lento-como-pode","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2016\/04\/14\/casos-do-dia-a-dia-comprei-um-servidor-melhor-e-o-sql-server-esta-mais-lento-como-pode\/","title":{"rendered":"Casos do Dia a Dia: Comprei um servidor melhor e o SQL Server est\u00e1 mais lento! Como pode???"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Passando para compartilhar com voc\u00eas mais uma experi\u00eancia que tive no meu dia a dia de <a href=\"https:\/\/www.fabriciolima.net\/blog\/consultoria-remota\/\" target=\"_blank\">Consultor SQL Server<\/a>.<\/p>\n<p>Uma empresa entrou em contato comigo para ajud\u00e1-los a entender porque um servidor SQL Server novo e com hardware melhor estava com uma performance pior que o antigo.<\/p>\n<p><!--more--><\/p>\n<p>Cen\u00e1rio:<\/p>\n<p>Servidor Antigo:<\/p>\n<ul>\n<li>16 GB de mem\u00f3ria<\/li>\n<li>6 Cores<\/li>\n<li>Disco SSD<\/li>\n<\/ul>\n<p>Servidor Novo:<\/p>\n<ul>\n<li>128 GB de mem\u00f3ria<\/li>\n<li>12 Cores<\/li>\n<li>Disco SSD<\/li>\n<\/ul>\n<p>Eles fizeram uma procedure que tinha um loop com 100 mil itera\u00e7\u00f5es e que cada itera\u00e7\u00e3o realizava um select e update em uma tabela. A procedure demorava <strong>20 segundos<\/strong> no servidor antigo e <strong>40 segundos<\/strong> no servidor novo. O dobro do tempo!!!<\/p>\n<p><span style=\"color: #ff0000;\">A\u00ed voc\u00ea mata o diretor do cora\u00e7\u00e3o!!! Falar que o servidor que ele investiu uma boa grana est\u00e1 com uma performance pior que o antigo n\u00e3o \u00e9 legal.<\/span><\/p>\n<p>Iniciando a an\u00e1lise, verifiquei que o plano de execu\u00e7\u00e3o das queries era o mesmo nos dois servidores e eles estavam realizando a mesma quantidade de reads.<\/p>\n<p>Dessa forma, resolvi fazer um loop que n\u00e3o realizava nenhuma consulta (acesso a disco) para comparar o processamento entre os dois servidores.<\/p>\n<p>Segue a query do loop:<\/p>\n<p>SET NOCOUNT ON<\/p>\n<p>declare @tmpCount int<br \/>\nselect @tmpCount = 0<\/p>\n<p>while @tmpCount &lt;= 10000000<br \/>\nbegin<br \/>\nset @tmpCount = @tmpCount + 1<br \/>\nend<\/p>\n<p>Esse loop demorou <strong>5 segundos<\/strong> no servidor antigo e <strong>10 segundos<\/strong> no servidor novo. Exatamente o dobro, assim como a procedure de teste deles.<\/p>\n<p>Opa!!! O problema \u00e9 CPU.<\/p>\n<p>Para comparar a CPU entre os servidores, utilizei a ferramenta CPU-Z:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-4204\" title=\"CPU-Z\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z.png\" alt=\"\" width=\"405\" height=\"377\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z.png 579w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-300x279.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-410x382.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-100x93.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-275x256.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/CPU-Z-20x20.png 20w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Comparei os dois servidores e verifiquei que a informa\u00e7\u00e3o <strong>Core Speed<\/strong> estava com os seguintes valores:<\/p>\n<p><strong>Servidor Antigo: 2592 MHz<\/strong><\/p>\n<p><strong>Servidor Novo: 1210 MHz<\/strong><\/p>\n<p>Opa!!! Algo de estranho no ar.<\/p>\n<p>Alguma coisa estava segurando a utiliza\u00e7\u00e3o de CPU, visto que o processador do servidor novo era melhor que o do servidor antigo.<\/p>\n<p>Ap\u00f3s um bate papo com meu amigo Rodrigo (<a href=\"http:\/\/thesqltimes.com\/blog\/\" target=\"_blank\">Blog<\/a>), validei v\u00e1rias configura\u00e7\u00f5es entre os servidores e uma delas era a op\u00e7\u00e3o de energia do servidor.<\/p>\n<p>Por default, esse servidor estava com a op\u00e7\u00e3o de energia marcada como <b>&#8220;Balanced&#8221;<\/b>. Alterei para <b>&#8220;High performance&#8221;<\/b> conforme figura abaixo:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/PowerOptions.png\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-4205\" title=\"PowerOptions\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/PowerOptions-1024x494.png\" alt=\"\" width=\"614\" height=\"296\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #0000ff;\"><strong>Feito isso, na hora o Core Speed do CPU-Z subiu de\u00a01210 MHz para 2700 MHz!!!<\/strong><\/span><\/p>\n<p>Opa!!!<\/p>\n<p>Executei novamente o teste do loop e agora os dois servidores estavam executando em <strong>5 segundos<\/strong>.<\/p>\n<p>A procedure de teste do cliente passou a rodar em <strong>20 segundos<\/strong> nos dois servidores.<\/p>\n<p>Pronto!!! A configura\u00e7\u00e3o do SO estava economizando energia e reduzindo a capacidade de processamento do servidor.<\/p>\n<p>Agora o Diretor pode ficar tranquilo que a performance do servidor novo n\u00e3o ser\u00e1 pior que do servidor antigo.<\/p>\n<p>O Glenn Berry disse em um dos posts abaixo, que fica triste em dizer para habilitarmos essa op\u00e7\u00e3o de High Performance devido a um maior consumo de energia, mas \u00e9 o indicado para servidores de banco de dados. Podemos economizar energia de outras formas, com virtualiza\u00e7\u00e3o ou consolidando v\u00e1rias instancias de SQL Server em um mesmo Hardware.<\/p>\n<p>Segue alguns posts sobre o assunto\u00a0para leitura:<\/p>\n<ul>\n<li><a href=\"https:\/\/sqlserverperformance.wordpress.com\/2010\/09\/28\/windows-power-plans-and-cpu-performance\/\" target=\"_blank\">https:\/\/sqlserverperformance.wordpress.com\/2010\/09\/28\/windows-power-plans-and-cpu-performance\/<\/a><\/li>\n<li><a href=\"https:\/\/sqlserverperformance.wordpress.com\/2010\/02\/22\/power-plans-and-windows-server-2008-r2\/\" target=\"_blank\">https:\/\/sqlserverperformance.wordpress.com\/2010\/02\/22\/power-plans-and-windows-server-2008-r2\/<\/a><\/li>\n<li><a href=\"https:\/\/www.brentozar.com\/archive\/2010\/10\/sql-server-on-powersaving-cpus-not-so-fast\/\" target=\"_blank\">https:\/\/www.brentozar.com\/archive\/2010\/10\/sql-server-on-powersaving-cpus-not-so-fast\/<\/a><\/li>\n<\/ul>\n<p>\u00c9 uma op\u00e7\u00e3o bem simples de ser alterada que fez uma grande diferen\u00e7a na performance do ambiente.<\/p>\n<p>&nbsp;<br \/>\n<b>Gostou dessa dica?<\/b><\/p>\n<p>Cadastre seu e-mail para receber novos Posts e curta minha <a href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\">P\u00e1gina no Facebook<\/a> para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>Confira mais experi\u00eancias do Dia a Dia de um DBA no meu <a href=\"https:\/\/www.fabriciolima.net\/cursos-online\/treinamento-tarefas-do-dia-a-dia-de-um-dba-online\/\" target=\"_blank\">Treinamento de Tarefas do Dia a Dia de um DBA<\/a>.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>MCITP \u2013 Database Administrator<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Passando para compartilhar com voc\u00eas mais uma experi\u00eancia que tive no meu dia a dia de Consultor SQL Server. Uma empresa entrou em contato comigo para ajud\u00e1-los a entender porque um servidor SQL Server novo e com hardware melhor estava com uma performance pior que o antigo.<\/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":"","jetpack_post_was_ever_published":false},"categories":[3,6,942,991,33],"tags":[1272,1275,1276,1268,1273,1269,613,1274,1270,1271],"class_list":["post-4201","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-casos-do-dia-a-dia","category-consultoria-sql-server","category-dba-remoto","category-sql-server","tag-como-escolher-a-cpu","tag-configuracao-energia-servidor","tag-core-speed","tag-cpu","tag-cpu-probrems","tag-cpu-z","tag-high-performance","tag-power-plan","tag-problema-cpu","tag-sql-server-cpu"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":7833,"url":"https:\/\/fabriciolima.net\/blog\/2017\/05\/23\/migrando-um-sql-server-2008-totvs-protheus-para-o-sql-server-2016-standard\/","url_meta":{"origin":4201,"position":0},"title":"Migrando um SQL Server 2008 Totvs Protheus para o SQL Server 2016 Standard","author":"Fabr\u00edcio Lima","date":"23 de maio de 2017","format":false,"excerpt":"Fala Pessoal, Hoje vou compartilhar com voc\u00eas sobre uma migra\u00e7\u00e3o que fiz em um cliente no in\u00edcio do m\u00eas. Cen\u00e1rio Antigo: Windows Server 2008 SQL Server 2008 R2 Standard Servidor \u00fanico (migra\u00e7\u00e3o para o mesmo Hardware) Novo Cen\u00e1rio: Windows Server 2012 R2 SQL Server 2016 Standard Edition Como n\u00e3o t\u00ednhamos\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/sql2016Totvs.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":4649,"url":"https:\/\/fabriciolima.net\/blog\/2016\/06\/22\/queries-do-dia-a-dia-monitorando-contadores-de-forma-simples-via-dmv\/","url_meta":{"origin":4201,"position":1},"title":"Queries do Dia a Dia &#8211; Monitorando Contadores de forma simples via DMV","author":"Fabr\u00edcio Lima","date":"22 de junho de 2016","format":false,"excerpt":"Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas mais um script que utilizo nos clientes que realizo um monitoramento di\u00e1rio do SQL Server. Realizando uma busca na internet voc\u00ea encontra algumas formas de monitorar contadores no SQL Server. Voc\u00ea pode enviar dados do perfmon para um arquivo e depois importar para\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2016\/04\/POSTContadoresPerformance.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":206,"url":"https:\/\/fabriciolima.net\/blog\/2010\/12\/25\/casos-do-dia-a-dia-diminuindo-um-problema-de-memoria-no-sql-server\/","url_meta":{"origin":4201,"position":2},"title":"Casos do Dia a Dia &#8211; Diminu\u00edndo um problema de mem\u00f3ria no SQL Server","author":"Fabr\u00edcio Lima","date":"25 de dezembro de 2010","format":false,"excerpt":"\ufeff Fala Pessoal, Em meu ambiente de trabalho, possuo um servidor 32 bits com o SQL Server 2005 32 bits,\u00a0com 4 GB de mem\u00f3ria e com a op\u00e7\u00e3o \/3GB habilitada. Esse servidor possui uma m\u00e9dia de 1500 conex\u00f5es simult\u00e2neas no banco de dados durante o hor\u00e1rio de pico e possui\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2010\/12\/3.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":294,"url":"https:\/\/fabriciolima.net\/blog\/2010\/06\/05\/passo-a-passo-para-encontrar-as-querys-mais-demoradas-do-banco-de-dados-parte-2\/","url_meta":{"origin":4201,"position":3},"title":"Passo a passo para encontrar as querys mais demoradas do Banco de Dados &#8211; Parte 2","author":"Fabr\u00edcio Lima","date":"5 de junho de 2010","format":false,"excerpt":"Continuando o artigo Passo a passo para encontrar as querys mais demoradas do Banco de Dados - Parte 1. Agora que o trace j\u00e1 foi testado e vimos que ele realmente funciona, criaremos um job para enviar o trace para a tabela de log e automatizar todo o processo. Voc\u00ea\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"Step1_thumb1","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2010\/10\/step1_thumb15b45d.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":7321,"url":"https:\/\/fabriciolima.net\/blog\/2017\/02\/14\/usa-o-sql-server-express-por-que-ainda-nao-migrou-para-a-versao-2016-e-de-graca\/","url_meta":{"origin":4201,"position":4},"title":"Usa o SQL Server Express? Por que ainda n\u00e3o migrou para a vers\u00e3o 2016? \u00c9 de gra\u00e7a!","author":"Fabr\u00edcio Lima","date":"14 de fevereiro de 2017","format":false,"excerpt":"Fala Pessoal, Semana passada eu atendi uma empresa que utilizava o SQL Express para sua aplica\u00e7\u00e3o. Eles utilizavam a vers\u00e3o 2014 e j\u00e1 estavam com a base em 6 GB. Fiz um atendimento r\u00e1pido para eles e deixei como dica migrarem para a vers\u00e3o Express do SQL Server 2016, j\u00e1\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/02\/SQLExpress2016_Instalacao.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":9838,"url":"https:\/\/fabriciolima.net\/blog\/2018\/12\/04\/managed-instance-14-qual-o-melhor-service-tier-para-a-minha-empresa-general-purpose-ou-business-critical\/","url_meta":{"origin":4201,"position":5},"title":"Managed Instance (#14) \u2013 Qual o melhor Service Tier para a minha empresa? General Purpose ou Business Critical?","author":"Fabr\u00edcio Lima","date":"4 de dezembro de 2018","format":false,"excerpt":"Fala Pessoal, Esse \u00e9 mais um post da s\u00e9rie sobre o Azure SQL Database Managed Instance. Caso ainda n\u00e3o tenha visto, seguem os posts anteriores: Azure SQL DB Managed Instance \u2013 Introdu\u00e7\u00e3o Managed Instance \u2013 Criando minha primeira inst\u00e2ncia Managed Instance \u2013 Como se conectar direto do SSMS utilizando uma\u2026","rel":"","context":"Em &quot;Azure SQL Database&quot;","block_context":{"text":"Azure SQL Database","link":"https:\/\/fabriciolima.net\/blog\/category\/azure-sql-database\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/12\/Managedinstance_GPxBC_3.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/12\/Managedinstance_GPxBC_3.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/12\/Managedinstance_GPxBC_3.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/12\/Managedinstance_GPxBC_3.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/12\/Managedinstance_GPxBC_3.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/12\/Managedinstance_GPxBC_3.png?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/4201","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=4201"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/4201\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=4201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=4201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=4201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}