Entendendo o Crescimento do Transaction Log no SQL Server

O crescimento excessivo do arquivo de Transaction Log (.ldf) é uma das dúvidas mais comuns entre administradores de bancos de dados SQL Server. Em muitos casos, ele cresce de forma inesperada, comprometendo espaço em disco e causando lentidão.

Neste post, vamos esclarecer de forma direta:

  • Por que o Transaction Log cresce

  • Como identificar as causas do crescimento

  • Boas práticas para evitar problemas


🧠 O que é o Transaction Log?

O Transaction Log é um arquivo essencial que registra todas as operações de modificação no banco de dados. Ele garante a consistência das transações e é fundamental para recuperação em caso de falhas.

Ele é usado para:

  • Rollback de transações

  • Recuperação automática do banco após falhas

  • Backups de log (em FULL e BULK_LOGGED)

⚠️ Por que o Log Cresce?

O crescimento anormal do .ldf ocorre, principalmente, por:

  1. Falta de backup de log

    • No Recovery model FULL, se você não faz backups do log, ele nunca é truncado.
  2. Transações longas ou abertas

    • Transações grandes mantêm o log ativo por muito tempo.
  3. Operações de carga massiva ou manutenção

    • Como INSERT INTO, UPDATE, DELETE, SELECT INTO, INDEX REBUILD, entre outras.

🔍 Como Monitorar o Espaço Usado no Log

Use a função DBCC SQLPERF para visualizar o espaço de log utilizado:

DBCC SQLPERF(LOGSPACE)

Ela retorna:

  • Nome do banco

  • Tamanho total do log (MB)

  • Percentual de espaço usado

  • Status do log


🛠️ Como Liberar Espaço do Log

Dependendo do modelo de recuperação do seu banco:

1. Banco em FULL:

  • Faça backup do log para liberar espaço:
BACKUP LOG NomeDoBanco TO DISK = 'C:\Backups\NomeDoBanco_Log.trn'

2. Banco em SIMPLE:

  • O log é truncado automaticamente, mas pode crescer se houver:

    • Transações longas

    • Transações em aberto

🧼 Evite usar SHRINKFILE com frequência:

USE NomeDoBanco
DBCC SHRINKFILE(NomeDoLog_LDF, 100)

Use apenas em casos pontuais e nunca como rotina. Isso fragmenta o arquivo e prejudica a performance.


✅ Boas Práticas

  • Agende backups de log frequentes para bancos com Recovery Model FULL

  • Monitore transações longas (sys.dm_tran_session_transactions)

  • Acompanhe o uso do log com DBCC SQLPERF ou via Performance Monitor

  • Estabeleça tamanho inicial e incremento fixo para o arquivo .ldf (evite autogrowth com porcentagem)


Saber controlar o crescimento do Transaction Log é essencial para garantir um ambiente SQL Server estável, seguro e performático.


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!

0
Subscribe to my newsletter

Read articles from SQL Server Expert directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

SQL Server Expert
SQL Server Expert

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.