Als u problemen begint te ondervinden wat betreft locking gedrag en de Sql Server database optie in Microsoft Dynamics NAV gebruikt dan kan u extra trace informatie bekomen in de Sql Server Error Logs door bepaalde tracer flags aan te zetten.
Trace Flags
Trace flags worden gebruikt om tijdelijk bepaalde server specifieke eigenschappen aan te zetten of om bepaald gedrag te stoppen. Trace flags worden dikwijls gebruikt om performance issues te diagnotiseren of om stored procedures te debuggen op complexe computer systemen. Deze flags zijn gedocumenteerd en vind je terug in Sql Server 2000 (zie BOL):
Voorbeelden:
A. Zet een trace flag aan door gebruik te maken van DBCC TRACEON
Dit voorbeeld zal trace flag 3205 aanvinken via DBCC TRACEON.
DBCC TRACEON (3205)
B. Zet trace flags via de command prompt
Dit voorbeeld zal trace flag 3205 aanvinken via de command prompt.
sqlservr –d"C:\Program Files\Microsoft SQL Server\MSSQL\Data\master.mdf" –T3205
Maar er zijn ook een hele bende 'undocumented' trace flags beschikbaar die je kan hanteren. Afhankelijk van welke Sql Server versie die je gebruikt, 7.0, 2000, 2005 en welk service pack zullen sommige ervan gedocumenteerd of ongedocumenteerd zijn in de Sql Server Books Online (BOL).
Hier zijn enkele trace flags die handig zijn bij een onderzoek naar locking gedrag van bepaalde processen/transacties:
Trace flag 1204:
Deze trace flag geeft u het type van locks die deelnemen aan de deadlock en het huidige betrokken commando. Deze trace flag was gedocumenteerd in SQL Server 7.0 Books Online, maar niet meer in SQL Server 2000.
Trace flag 1205:
Deze trace flag geeft meer gedetailleerde informatie over het commando dat wordt uitgevoerd tijdens het moment van de deadlock. Deze trace flag was gedocumenteerd in SQL Server 7.0 Books Online, maar niet meer in SQL Server 2000.
Trace flag 3604:
Een van de meest gebruikte trace flags. Trace flag 3604 zendt trace output naar de client. Deze trace flag wordt alleen gebruikt als men de flags aan/uit-zet met DBCC TRACEON en DBCC TRACEOFF. Deze trace flag was gedocumenteerd in SQL Server 6,5, 7.0 Books Online, maar niet meer in SQL Server 2000.
Trace flag 3605:
In vergelijking met Trace flag 3604, zend deze trace flag output naar de error log. Deze trace flag was gedocumenteerd in SQL Server 6,5, 7.0 Books Online, maar niet meer in SQL Server 2000.
Comments