{"id":843,"date":"2019-12-19T09:34:14","date_gmt":"2019-12-19T12:34:14","guid":{"rendered":"https:\/\/sites.grandecircular.com\/biztecnologia\/?p=843"},"modified":"2019-12-19T11:32:21","modified_gmt":"2019-12-19T14:32:21","slug":"como-anda-a-saude-do-seu-ambiente-sql-server","status":"publish","type":"post","link":"https:\/\/sites.grandecircular.com\/biztecnologia\/blog\/como-anda-a-saude-do-seu-ambiente-sql-server\/","title":{"rendered":"Como anda a sa\u00fade do seu ambiente SQL Server?"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Health-Check<\/h3>\n\n\n\n<p>Assim como fazer revis\u00e3o do seu carro ou um check-up m\u00e9dico, \u00e9 necess\u00e1rio fazer o mesmo com seu ambiente de banco de dados SQL Server. Isto \u00e9, existem muitas funcionalidades, configura\u00e7\u00f5es e defini\u00e7\u00f5es que podem tanto melhorar quanto piorar a sa\u00fade do seu ambiente. Ou seja, para saber se a &#8220;sa\u00fade&#8221; do seu ambiente est\u00e1 OK, \u00e9 necess\u00e1rio fazer um <strong>Health Check. <\/strong>O Health Check, consistem realiza<strong>r <\/strong>uma varredura no seu ambiente de banco de dados, com o intuito de analisar todas as configura\u00e7\u00f5es, defini\u00e7\u00f5es, entidades, objetos, etc.<\/p>\n\n\n\n<p>Para cada ambiente de SQL Server, esses itens devem ser configurados de forma correta. Portanto, uma configura\u00e7\u00e3o correta pode melhorar muito a performance, assim como, essa mesma configura\u00e7\u00e3o parametrizada de forma incorreta poder\u00e1, e ir\u00e1 diminuir em muito sua performance. Al\u00e9m disso, tamb\u00e9m pode afetar o consumo do seu storage, assim como uma configura\u00e7\u00e3o errada de funcionalidades, que aparentemente foram feitas para melhorar seu ambiente, podem trazer grandes preju\u00edzos.<\/p>\n\n\n\n<p>A configura\u00e7\u00e3o de um \u00edndice, por exemplo, \u00e0 primeira vista vai melhorar a performance na leitura do seu banco de dados, mas o que poucas pessoas sabem \u00e9 que o mesmo \u00edndice pode piorar o tempo de inser\u00e7\u00e3o de dados. Muitos dos \u00edndices que s\u00e3o criados por sugest\u00e3o do SQL Server, nunca s\u00e3o usados ou s\u00e3o usados apenas uma vez. O que muitas vezes acarreta apenas em mais um processo na hora de inserir dados, ocupando ainda mais espa\u00e7o em seu storage.<\/p>\n\n\n\n<p>Itens como a configura\u00e7\u00e3o certa da quantidade de arquivos da TempDB.Assim como, defini\u00e7\u00e3o de limite de mem\u00f3ria dispon\u00edvel para o SQL Server. Configura\u00e7\u00e3o do Autogrowth e a defini\u00e7\u00e3o correta do tipo de Recovery Model. Defini\u00e7\u00e3o correta dos tipos de dados, fragmenta\u00e7\u00e3o de tabela e dos \u00edndices. Uso dos \u00edndices, os \u00edndices duplicados, compress\u00e3o de tabelas e entre outros. Desse modo, todos isso pode trazer melhorias relevantes para seu ambiente, desde que analisados e configuradas de acordo com as melhores pr\u00e1ticas e necessidade do cliente.<\/p>\n\n\n\n<p>S\u00f3 para exemplificar, abaixo abordaremos apenas um dos pontos que s\u00e3o analisados em um Health Check, a <strong>defini\u00e7\u00e3o de tipos de dados<\/strong> e mostraremos na pr\u00e1tica quanto se pode ganhar quando a sa\u00fade do seu ambiente est\u00e1 OK.<\/p>\n\n\n\n<p>O primeiro exemplo mostra o ganho de espa\u00e7o em storage: at\u00e9 26 vezes mais espa\u00e7o. O segundo exemplo mostra o ganho de performance em uma consulta: 10 vezes mais r\u00e1pida.<\/p>\n\n\n\n<p>Observem que:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>As tabelas com sufixo <strong>BAD<\/strong> est\u00e3o com o tipo de dados <strong>MAL<\/strong> definidos<\/li><li>As tabelas com sufixo <strong>GREAT<\/strong> est\u00e3o com os tipos de dados <strong>BEM<\/strong> definidos<\/li><li>Todas as tabelas t\u00eam a mesma estrutura de colunas e a mesma quantidade de registros (100 mil registros)<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Exemplo 1) Economia Storage<\/strong><\/h3>\n\n\n\n<p>Nesse exemplo podemos ver que as tabelas &#8220;hc_tbCliente_<strong>BAD<\/strong>&#8221; e &#8220;hc_tbEndere\u00e7o_<strong>BAD<\/strong>&#8221; ocupam muito mais espa\u00e7o (at\u00e9 26 vezes mais) do que as tabelas &#8220;hc_tbCliente_<strong>GREAT<\/strong>&#8221; e &#8220;hc_tbEndere\u00e7o_<strong>GREAT<\/strong>&#8220;.<\/p>\n\n\n\n<p>A tabela &#8220;hc_tbCliente_<strong>BAD<\/strong>&#8221; est\u00e1 ocupando <strong>400,136 KB<\/strong> enquanto a &#8220;hc_tbCliente_<strong>GREAT<\/strong>&#8221; ocupa apenas <strong>15,112 KB. <\/strong>Nesse caso o ganho \u00e9 de <strong>26 vezes menos<\/strong> espa\u00e7o em armazenamento no seu storage.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"745\" height=\"137\" src=\"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/tela1.png\" alt=\"Tamanho das tabelas no SQL Server\" class=\"wp-image-1011\" srcset=\"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/tela1.png 745w, https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/tela1-300x55.png 300w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><figcaption>Espa\u00e7o utilizado pelas tabelas<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Exemplo 2) Melhoria de Performance<\/h3>\n\n\n\n<p>Esse exemplo \u00e9 um JOIN entre as tabelas de Cliente e Endere\u00e7o. Do<strong> lado esquerdo<\/strong> temos as tabelas com os tipos de dados <strong>BEM<\/strong> definidos, do <strong>lado direito<\/strong> as tabelas com os tipos de dados <strong>MAL<\/strong> definidos.<\/p>\n\n\n\n<p>As tabelas com os tipos de dados <strong>BEM<\/strong> definidos retornaram os dados em uma consulta <strong>10 vezes mais r\u00e1pido.<\/strong><\/p>\n\n\n\n<p>Se voc\u00ea acha que tem a necessidade de escalar seu ambiente adquirindo mais hardware, o Health Check pode ser uma solu\u00e7\u00e3o bem mais barata e simples. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"307\" src=\"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/tela2.png\" alt=\"Tabelas SQL Server\" class=\"wp-image-1012\" srcset=\"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/tela2.png 753w, https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/tela2-300x122.png 300w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><figcaption>Tabelas com dados definidos da forma correta e da forma incorreta<\/figcaption><\/figure><\/div>\n\n\n\n<p>Entre em <a href=\"https:\/\/sites.grandecircular.com\/biztecnologia\/contato\/\">contato<\/a> com a<a href=\"https:\/\/sites.grandecircular.com\/biztecnologia\/solucoes\/infraestrutura\/\"> <\/a><strong><a href=\"https:\/\/sites.grandecircular.com\/biztecnologia\/solucoes\/infraestrutura\/\">Biz Tecnologia<\/a><\/strong> e melhore a performance do seu banco de dados (leitura, escrita e atualiza\u00e7\u00e3o de dados), economize espa\u00e7o no seu storage, descubra problemas cr\u00edticos que podem ocasionar uma parada repentina do ambiente e tenha mais seguran\u00e7a nos seus dados.<\/p>\n\n\n\n<p> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Health-Check Assim como fazer revis\u00e3o do seu carro ou um check-up m\u00e9dico, \u00e9 necess\u00e1rio fazer o mesmo com seu ambiente de banco de dados SQL Server. Isto \u00e9, existem muitas funcionalidades, configura\u00e7\u00f5es e defini\u00e7\u00f5es que podem tanto melhorar quanto piorar a sa\u00fade do seu ambiente. Ou seja, para saber se a &#8220;sa\u00fade&#8221; do seu ambiente [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":1017,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[],"class_list":["post-843","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sql-server"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-content\/uploads\/2019\/12\/download.png","_links":{"self":[{"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/posts\/843","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/comments?post=843"}],"version-history":[{"count":5,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/posts\/843\/revisions"}],"predecessor-version":[{"id":1020,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/posts\/843\/revisions\/1020"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/media\/1017"}],"wp:attachment":[{"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/media?parent=843"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/categories?post=843"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.grandecircular.com\/biztecnologia\/wp-json\/wp\/v2\/tags?post=843"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}