Skip to main content

Command Palette

Search for a command to run...

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

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

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:

  1. Tabelas temporárias e variáveis de tabela

    Essas estruturas são criadas diretamente na TempDB e podem causar consumo elevado em cargas intensivas.

  2. Triggers
    Toda vez que uma trigger dispara, são criadas tabelas internas (inserted e deleted) que consomem TempDB.

  3. Row Versioning
    Quando habilitado, o versionamento de linhas (Snapshot Isolation, Read Committed Snapshot) grava as versões dos dados na TempDB.

  4. Consultas complexas
    Operações como ORDER BY, GROUP BY, UNION e HASH JOIN podem 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.

  5. 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!

More from this blog

S

SQL Server Expert

30 posts

O SQL Server Expert é o blog oficial do Prof. Landry Duailibe, dedicado a profissionais de dados que desejam dominar o Microsoft SQL Server em profundidade.