Gestion des transactions de longue durée
Une des causes possibles de la saturation du journal est l'existence d'une transaction de longue durée. Une transaction de longue durée maintient actif le journal des transactions à partir du fichier journal virtuel contenant le premier enregistrement de journal de la transaction. La troncation ne peut pas se produire à partir de ce fichier journal virtuel.
Important
Une transaction de très longue durée entraîne la saturation du journal des transactions. Pour plus d'informations sur les actions possibles en cas de saturation du journal des transactions, consultez Résolution des problèmes en cas de journal des transactions saturé (erreur 9002).
Découverte des transactions de longue durée
Pour rechercher des transactions de longue durée, appliquez une des procédures suivantes :
sys.dm_tran_database_transactions
Cet affichage de gestion dynamique retourne des informations sur les transactions au niveau de la base de données. Pour une transaction de longue durée, les colonnes particulièrement intéressantes incluent l'heure du premier enregistrement de journal (database_transaction_begin_time), l'état actuel de la transaction (database_transaction_state) et le numéro séquentiel dans le journal de l'enregistrement initial dans le journal des transactions (database_transaction_begin_lsn).
Pour plus d'informations, consultez sys.dm_tran_database_transactions (Transact-SQL).
DBCC OPENTRAN
Cette instruction vous permet d'identifier l'ID du propriétaire de la transaction et éventuellement de retrouver la source de la transaction pour y mettre fin dans les règles de l'art (la valider au lieu de la restaurer). Pour plus d'informations, consultez DBCC OPENTRAN (Transact-SQL).
Notes
Pour plus d'informations sur les autres facteurs susceptibles de retarder la troncation du journal, consultez Facteurs pouvant retarder la troncation du journal.
Arrêt d'une transaction
Vous devrez peut-être utiliser l'instruction KILL. Utilisez cette instruction avec précaution, particulièrement lorsque des processus critiques sont en cours d'exécution. Pour plus d'informations, consultez KILL (Transact-SQL).