SQL deadlocks
Više o “mrtvom zaključavanju” 🙂 u mom ranijem postu.
A ovde više o logovima istog.
Dakle da bi se uopšte u SQL logu upisalo nešto o deadlocks, moraju se uraditi neke stvari :
1. Enable tracing
Trace flags are switches that adminstrators or developers can use to change the behavior of SQL Server.
1a. Uključiti da izlaz komande bude prikazan u MS SQL SMS (inače ide u SQL error log po default-u) :
DBCC TRACEON (3604) — turns on flag 3604 for your session
DBCC PAGE (master, 1, 1, 0);
DBCC TRACEOFF(3604) — turns off 3604 for your session
Obavezno kad se sve završi, isključiti opciju :
DBCC TRACEOFF(3604) — turns off 3604 for your session
(link)
1b. Videti šta je sve uključeno od trace flags (link) :
dbcc tracestatus();
go
Dobija se ovo :
Napomena :
Trace flag 3604 – Trace flag 3604 sends trace output to the client. This trace flag is used only when setting trace flags with DBCC TRACEON and DBCC TRACEOFF.
Trace flag 3605 – Sends trace output to the error log.
1c. Odabrati trace flag koji nam treba (spisak trace flag-ova).
Za praćenje deadlocks trebaju nam trace flags 1204 i 1222 (1204 lists the information by node; 1222 lists it by process and resource) :
DBCC TRACEON (1204, 1222)
Kad izlistamo sada sve trace flags :
Ako se uključi da bude globalno (bolje) onda se hvata sve, a ne samo otvorena sesija :
DBCC TRACEON (1204, 1222, -1)
*****
DBCC – DataBase console command
Trace flag 1204 – starija varijanta
Trace flag 1222 – od SQL 2005, lakše čitljivi logovi