Senaste inläggen 

Taggar 

data warehouse     filter     Säkerhet     history     create index     parameters     SQL server codename Denali     SQL2008     BOL     Logins     package load     page splits     CU1     temp table     platsannons SQL utvecklare     0xC0202009     CTE     Techdays     SQL Server     T-SQL     CTP1     access denied     XP_cmdshell     SSRS     central management server     undocumented procedures     dbmail     connection     features     security     gratis verktyg     sql 2008     transactions     connect     constraint     2000     HADR     0xC0010014     reorganize index     Business Intelligence     Cluster     sp_MSForEachDB     function     login error     HEAP     AcquireConnection     parallelism     sql 2005     performance     virtuell     error     improve     feedback     CMS     SQL Denali     Microsoft     clean up     resource governor     Extended Event     #am_get_querystats     SSIS     rebuild     Trace Flag     2008     sql browser     Reports     DTA     CU3     bugs     2005     Page life expectancy     2011     SSAS     sp1     SSRS 2008     concatenation     SQL Server 2012     DECIMAL     profile     Activity Monitor     Datawarehouse

Logga deadlocks

Skrivet den 20 juli 2012 i Jan Nieminen, Level 300, SQL Server allmänt, sv

Om du misstänker att du har problem med deadlocks är det något du bör ta tag i så snabbt som möjligt!

När du väl konstaterat att du faktiskt har deadlocks blir nästa steg att ta reda på mera detaljer kring dessa. Mer specifikt så vill du naturligtvis veta vilken kod som är orsaken och vilka tabeller som är inblandade.

En variant för att ta reda på mer är att starta en trace och lägga till följande events:
Deadlock graph
Lock:Deadlock
Lock:Deadlock Chain

Som vi alla redan känner till så får vi med dessa events en grafisk bild över eventuella deadlocks vilket kan vara bra hjälp när man försöker ringa in problemet.

Jag tänkte här istället slå ett slag för en annan variant och det är att starta traceflagga 1204 eller 1222. Dessa loggar all info kring deadlocks i SQL Server loggen. Man kan välja att enabla båda flaggorna eller bara en av dem om man vill. Båda levererar lite olika, men nödvändig, information för att felsöka deadlocks.

Vi kan tex ur loggen utläsa vilken process som är "deadlock victim", vilken kod som körts av båda parter i låsningen, vilken isolationsnivå vi hade mm.

Personligen föredrar jag denna framför den grafiska presentationen i Profiler när det gäller att snabbt spåra deadlocks, dessutom behöver jag inte starta och bevaka en trace utan kan i efterhand titta i loggen.

Dessa traceflaggor måste aktiveras på global nivå EX:

DBCC TRACEON(1222, -1), alternativt lägga till T1222 som en startup parameter för att säkerställa att loggning fortsätter även efter en omstart av SQL Server.

För en mer ingående förklaring av de olika alternativen:
http://msdn.microsoft.com/en-us/library/ms178104(SQL.105).aspx

Skriv en kommentar