Or, The Transaction Log: Why You Can’t Run Your Database Without It ACID Properties Transactions Write-ahead Logging Log Space Reservation Reading the Log with fn_dblog Identifying Active Transactions Finding Log Records Associated with Active Transactions Atomicity Consistency Isolation Durability Human sacrifice, dogs and cats living together... mass hysteria! What is a transaction? Explicit v. Implicit Transactions Write-ahead logging Roll back and roll forward SQL Server uses log space for transaction records Additional space is reserved for potential rollback activity Committed transaction releases reserved space SMALLER TRANSACTIONS ARE BETTER! Table-based function that allows the transaction log to be read Takes 2 parameters, starting and ending log sequence numbers (LSN) SELECT * FROM fn_dblog(NULL,NULL) returns the contents of the log Returns information about active transactions Results contain the begin and end LSN for each transaction Both the DMV and function contain a transaction_id The DMV id is hexadecimal and the function id is decimal, so converting one of them should work, right? Image Source - http://4.bp.blogspot.com/DY_k_dCp9EE/TvzOLaf17JI/AAAAAAAABBM/dBff_mOtNws/s1600/wrong+answer.jpg Converting the transaction IDs from either source did not result in a match After several attempts to make it work (octal, double and add 30, multiply by 9/5 and add 32) I wrote Paul Randal His response? “They don’t match. It’s annoying.” Both the DMV and the function contain begin and end LSNs The function returns colon-delimited hex LSNs (0000001a:000027a5:0001) The DMV returns a decimal value (26000001014900001)