Partilhar via


Gerenciando transações demoradas

Uma causa provável do preenchimento do log é uma transação demorada. Uma transação demorada mantém o log de transações ativo no arquivo de log virtual que contém o primeiro registro de log da transação. O truncamento não pode ocorrer do arquivo de log virtual em diante.

Observação importanteImportante

Uma transação muito demorada faz com que o log de transações seja preenchido. Para obter informações sobre como responder um log de transações completo, consulte Solucionando problemas em um log de transação completa (Erro 9002).

Descobrindo transações demoradas

Para procurar transações demoradas, use um dos seguintes:

  • sys.dm_tran_database_transactions

    Essa exibição de gerenciamento dinâmico retorna informações sobre as transações no banco de dados. Para uma transação demorada, as colunas de interesse específico incluem a hora do primeiro registro de log (database_transaction_begin_time); o estado atual da transação (database_transaction_state) e o LSN (Número de Seqüência de Log) do registro de início do log da transações (database_transaction_begin_lsn).

    Para obter mais informações, consulte sys.dm_tran_database_transactions (Transact-SQL).

  • DBCC OPENTRAN

    Essa instrução permite identificar a ID do proprietário da transação, de modo que seja possível localizar potencialmente a origem da transação para um término mais ordenado (confirmar, em vez de revertê-la). Para obter mais informações, consulte DBCC OPENTRAN (Transact-SQL).

ObservaçãoObservação

Para obter informações sobre outros fatores que podem atrasar o truncamento de log, consulte Fatores que podem atrasar o truncamento de log.

Parando uma transação

Talvez seja necessário usar a instrução KILL. Use essa instrução com muito cuidado, porém, especialmente quando houver processos importantes em processamento. Para obter mais informações, consulte KILL (Transact-SQL).