{"id":656,"date":"2011-04-26T00:02:07","date_gmt":"2011-04-26T02:02:07","guid":{"rendered":"http:\/\/fabriciolima.net\/blog\/?p=656"},"modified":"2016-07-23T23:10:35","modified_gmt":"2016-07-24T02:10:35","slug":"querys-do-dia-a-dia-como-encontrar-as-conexoes-que-mais-ocupam-espaco-no-tempdb","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2011\/04\/26\/querys-do-dia-a-dia-como-encontrar-as-conexoes-que-mais-ocupam-espaco-no-tempdb\/","title":{"rendered":"Querys do Dia a Dia: Como encontrar as conex\u00f5es que mais ocupam espa\u00e7o no Tempdb"},"content":{"rendered":"<p>Fala Pessoal,<\/p>\n<p>Um certo dia, no meio do meu expediente normal de trabalho, recebi a notifica\u00e7\u00e3o abaixo por e-mail:<\/p>\n<p><strong><em>T: Label:TempDB is 92 Percentage, threshold value for this monitor is 80 Percentage<\/em><\/strong><\/p>\n<p>Estava acabando o espa\u00e7o em disco no drive T: onde o Tempdb est\u00e1 armazenado em um dos\u00a0 meus servidores SQL Server.<\/p>\n<p>Na mesma hora, executei a query abaixo, que identifica o espa\u00e7o que est\u00e1 sendo utilizado por cada conex\u00e3o do SQL Server:<\/p>\n<p>SELECT A.session_id,B.host_name, B.Login_Name ,<br \/>\n(user_objects_alloc_page_count + internal_objects_alloc_page_count)*1.0\/128 as TotalalocadoMB,<br \/>\nD.Text<br \/>\nFROM sys.dm_db_session_space_usage A<br \/>\nJOIN sys.dm_exec_sessions B\u00a0 ON A.session_id = B.session_id<br \/>\nJOIN sys.dm_exec_connections C ON C.session_id = B.session_id<br \/>\nCROSS APPLY sys.dm_exec_sql_text(C.most_recent_sql_handle) As D<br \/>\nWHERE A.session_id &gt; 50<br \/>\nand (user_objects_alloc_page_count + internal_objects_alloc_page_count)*1.0\/128 &gt; 100 &#8212; Ocupam mais de 100 MB<br \/>\nORDER BY totalalocadoMB desc<br \/>\nCOMPUTE sum((user_objects_alloc_page_count + internal_objects_alloc_page_count)*1.0\/128)<\/p>\n<p>Com essa query, identifiquei uma conex\u00e3o de uma pessoa da nossa pr\u00f3pria equipe de TI que estava ocupando <strong>51.5 GB<\/strong> do Tempdb.<\/p>\n<p>Na mesma hora matei a conex\u00e3o e fui obrigado a executar um Shrink(Fui Obrigado!) para liberar espa\u00e7o no drive do Tempdb. Caso voc\u00ea n\u00e3o consiga diminuir o espa\u00e7o ocupado pelo TempDB executanto um shrink, que foi exatamente o meu caso, esse artigo \u00e9 a solu\u00e7\u00e3o para esse problema:<a title=\"Tempdb, please allow me to shrink you\" href=\"http:\/\/www.sqldbadiaries.com\/2010\/11\/13\/tempdb-please-allow-me-to-shrink-you\/\" target=\"_blank\"> tempdb, Please allow me to shrink you<\/a>.<\/p>\n<p>As duas vari\u00e1veis que s\u00e3o somadas para contar o espa\u00e7o alocado do Tempdb tem as seguintes propriedades:<br \/>\n<strong>User_objects_alloc_page_count<\/strong> &#8211; N\u00famero de p\u00e1ginas reservadas ou alocadas para objetos de usu\u00e1rios, tais como:<\/p>\n<ul>\n<li>Tabelas e \u00cdndices de Usu\u00e1rios<\/li>\n<li>Tabelas e \u00cdndices de Sistema<\/li>\n<li>Tabelas e \u00cdndices tempor\u00e1rios globais<\/li>\n<li>Tabelas e \u00cdndices tempor\u00e1rios locais<\/li>\n<li>Tabelas de vari\u00e1veis<\/li>\n<li>Tabelas retornadas em uma Table-Function<\/li>\n<\/ul>\n<p><strong>Internal_objects_alloc_page_count<\/strong> &#8211; N\u00famero de p\u00e1ginas reservadas ou alocadas para objetos internos, tais como:<\/p>\n<ul>\n<li>Work Tables para cursor, Spool Operations e LOB storage<\/li>\n<li>Work Files para opera\u00e7\u00f5es como Hash Join<\/li>\n<li>Sort Runs<\/li>\n<\/ul>\n<p>Essa query de monitoramento do espa\u00e7o alocado no TempDB, retorna apenas informa\u00e7\u00f5es de consultas que j\u00e1 rodaram, portanto, as querys em execu\u00e7\u00e3o n\u00e3o s\u00e3o consideradas. Para monitorar as querys que ainda est\u00e3o em execu\u00e7\u00e3o, aconselho a utiliza\u00e7\u00e3o da procedure <a title=\"Who is Active\" href=\"https:\/\/www.fabriciolima.net\/blog\/2011\/01\/10\/querys-do-dia-a-dia-monitoramento-do-banco-de-dados-who-is-active\/\" target=\"_blank\">Who_is_Active<\/a>.<\/p>\n<p><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>Aprenda a criar essa e outras rotinas para administrar melhor seu SQL Server 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>Fala Pessoal, Um certo dia, no meio do meu expediente normal de trabalho, recebi a notifica\u00e7\u00e3o abaixo por e-mail: T: Label:TempDB is 92 Percentage, threshold value for this monitor is 80 Percentage Estava acabando o espa\u00e7o em disco no drive T: onde o Tempdb est\u00e1 armazenado em um dos\u00a0 meus servidores SQL Server. Na mesma [&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":[13,280],"tags":[25,290,292,291,72,288,294,63,289,49,33,287,40,293],"class_list":["post-656","post","type-post","status-publish","format-standard","hentry","category-querys-do-dia-a-dia","category-virtual-pass-br","tag-dmv","tag-dm_db_session_space_usage","tag-dm_exec_connections","tag-dm_exec_sessions","tag-dm_exec_sql_text","tag-falta-de-espaco-em-disco","tag-internal_objects_alloc_page_count","tag-performance","tag-shrink","tag-sql","tag-sql-server","tag-tempdb","tag-tuning","tag-user_objects_alloc_page_count"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/656","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=656"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/656\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}