TempDB no SQL Server: Guia Completo e Novidades no SQL Server 2025

O Prof. Landry Duailibe é especialista em Microsoft SQL Server desde 1999, Microsoft Certified Trainer, professor universitário e criador do canal SQL Server Expert no YouTube, onde compartilha conteúdo técnico semanal para DBAs e profissionais de dados. Já ajudou milhares de alunos a evoluírem suas habilidades com SQL Server e conquistarem melhores oportunidades na área de dados.
Introdução
A TempDB é um dos bancos de sistema mais importantes do SQL Server. Ela funciona como uma área de trabalho temporária para consultas, triggers, versionamento de linhas, manutenção de índices e diversas funcionalidades internas do SQL Server.
Apesar de essencial, a TempDB é também uma das maiores fontes de problemas de desempenho, podendo crescer sem controle e impactar todo o ambiente.
Neste artigo, vamos entender:
O papel da TempDB e seus principais cenários de uso.
Como diagnosticar e monitorar seu crescimento.
A novidade mais aguardada do SQL Server 2025: o Resource Governor para TempDB.
O Papel da TempDB
A TempDB pode ser definida como o “rascunho” do SQL Server.
Sempre que o SQL precisa de espaço temporário, ele utiliza a TempDB.
Isso significa que ela pode ser intensamente utilizada ou não, dependendo do ambiente.
Características importantes:
É recriada a cada inicialização do serviço SQL Server.
Não armazena dados permanentes.
É única por instância (todas as bases compartilham a mesma TempDB).
Cenários que Utilizam a TempDB
Diversas operações do SQL Server dependem da TempDB. Entre os principais cenários:
Tabelas temporárias e variáveis de tabela
Essas estruturas são criadas diretamente na TempDB e podem causar consumo elevado em cargas intensivas.
Triggers
Toda vez que uma trigger dispara, são criadas tabelas internas (insertededeleted) que consomem TempDB.Row Versioning
Quando habilitado, o versionamento de linhas (Snapshot Isolation, Read Committed Snapshot) grava as versões dos dados na TempDB.Consultas complexas
Operações comoORDER BY,GROUP BY,UNIONeHASH JOINpodem gerar working tables na TempDB quando não há índices adequados.Exemplo:
Sem índice na coluna
DataAlteracao, o SQL Server precisa ordenar os dados na TempDB.Manutenção de índices
Operações como rebuild de índices em tabelas grandes podem gerar forte utilização da TempDB.
Monitorando a TempDB
A primeira ação diante de problemas é monitorar o uso da TempDB.
O SQL Server oferece DMVs específicas para diagnosticar o consumo.
Exemplo de monitoramento por tipo de objeto:
SELECT
SUM(unallocated_extent_page_count) * 8 / 1024 AS [Espaço Livre em MB],
SUM(version_store_reserved_page_count) * 8 / 1024 AS [Version Store em MB],
SUM(user_object_reserved_page_count) * 8 / 1024 AS [Objetos de Usuário em MB],
SUM(internal_object_reserved_page_count) * 8 / 1024 AS [Objetos Internos em MB]
FROM tempdb.sys.dm_db_file_space_usage;
Esse script mostra se o crescimento da TempDB está sendo causado por:
Objetos de usuário (tabelas temporárias).
Objetos internos (consultas sem índice, ordenações, joins, etc.).
Version Store (row versioning, triggers).
Outro ponto importante é monitorar por sessão:
SELECT es.host_name, es.login_name, es.program_name,
st.text AS Query,
tsu.session_id,
tsu.user_objects_alloc_page_count * 8 AS KB_ObjetosUsuario,
tsu.internal_objects_alloc_page_count * 8 AS KB_ObjetosInternos
FROM sys.dm_db_task_space_usage tsu
JOIN sys.dm_exec_requests er ON tsu.session_id = er.session_id
JOIN sys.dm_exec_sessions es ON tsu.session_id = es.session_id
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) st
WHERE tsu.internal_objects_alloc_page_count + tsu.user_objects_alloc_page_count > 0
AND tsu.session_id <> @@spid
ORDER BY KB_ObjetosUsuario + KB_ObjetosInternos DESC;
Assim é possível identificar qual query ou aplicação está consumindo TempDB acima do esperado.
Novidade do SQL Server 2025: Resource Governor para TempDB
Até o SQL Server 2022, não havia como limitar diretamente o uso da TempDB.
A grande novidade do SQL Server 2025 é que agora podemos usar o Resource Governor para impor limites de consumo.
Exemplo de configuração:
-- Cria Resource Pool
CREATE RESOURCE POOL RP_TempDB
WITH (MAX_CPU_PERCENT = 75, MAX_MEMORY_PERCENT = 75);
-- Cria Workload Group associado ao Pool
CREATE WORKLOAD GROUP RG_TempDB_Group USING RP_TempDB;
-- Limita uso da TempDB a 1 MB
ALTER WORKLOAD GROUP RG_TempDB_Group
WITH (GROUP_MAX_TEMPDB_DATA_MB = 1);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Podemos também limitar em percentual do total da TempDB:
ALTER WORKLOAD GROUP RG_TempDB_Group
WITH (GROUP_MAX_TEMPDB_DATA_PERCENT = 10);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Na prática, isso significa que usuários ou aplicações específicas não poderão mais sozinhos “explodir” a TempDB, trazendo muito mais segurança para ambientes críticos.
Conclusão
A TempDB é essencial para o funcionamento do SQL Server, mas também pode ser um dos maiores gargalos de desempenho.
Saber como ela é usada, como monitorá-la e agora, no SQL Server 2025, como limitar seu consumo com o Resource Governor é fundamental para todo DBA que deseja manter ambientes estáveis e seguros.
Se você ainda não testou, baixe a versão RC do SQL Server 2025 e explore o recurso de Resource Governor para TempDB. Essa é uma das novidades mais aguardadas pela comunidade SQL Server!
Fui, mas volto com mais SQL Server em breve!
✍️ Sobre o autor
O Prof. Landry é especialista em Microsoft SQL Server desde 1999, Microsoft Trainer, Professor Universitário e criador do canal SQL Server Expert no YouTube, com conteúdo técnico semanal para DBAs e profissionais de dados.
🚀 Quer aprender mais sobre SQL Server?
👉 Me acompanhe no LinkedIn e inscreva-se no canal para não perder nenhuma dica prática!





