De Database Experts!
Een optie om het gedrag van MSSQL Server aan te passen is het gebruik van traceflags. Je kunt een traceflag vergelijken met de oude DIP switches die je soms nog weleens tegen komt in apparatuur. Op dit moment zijn er al meer dan 100 traceflags en dit aantal neemt alleen maar toe.
Er zijn traceflags welke zijn beschreven (“documented”) en dus ondersteund door Microsoft, maar er zijn ook “undocumented” traceflags bekend. Het gebruik van undocumented traceflags neemt een risico met zich mee, want dit kan leiden tot een situatie waardoor er geen support meer wordt geleverd. Andersom mogen undocumented traceflags alleen worden geactiveerd op advies van Microsoft. Bestudeer altijd eerst het doel en de effecten van een traceflag alvorens deze in een testomgeving uit te proberen. DBA.nl kan ondersteuning bieden bij vragen over de toepassing traceflags.
Met de T-SQL hint QUERYTRACEON kan een traceflag alleen voor een specifieke query geactiveerd worden (in dit voorbeeld traceflag 4199):
SELECT … FROM … OPTION (QUERYTRACEON 4199)
Je kunt een traceflag voor een specifieke query gebruiken, door het DBC TRACEON() commando. Een voorbeeld om traceflag 4199 te testen:
DBCC TRACEON(4199) SELECT …
Als de sessie wordt beëindigd, is de traceflag weer uitgezet. Je kunt meerdere traceflags opgeven, gescheiden door komma’s.
Het zelfde commando kan gebruikt worden om een traceflag globaal aan te zetten. De flag geldt dan voor alle sessies. Er moet dan alleen -1 worden toegevoegd aan het laatste tracenummer:
DBCC TRACEON(4199, -1)
De opgegeven traceflag blijft hiermee actief totdat de instance wordt herstart. Na de herstart is de traceflag verdwenen.
Hiermee wordt bedoeld dat de traceflag als startparameter wordt toegevoegd aan de MSSQL service. De werkwijze verschilt per gebruikte MSSQL versie, vanaf MSSQL 2012 is dit een stuk eenvoudiger geworden.
Opstartparameters wijzigen voor MSSQL 2005 / 2008 (R2)
Opstartparameters wijzigen vanaf MSSQL 2012
De werkwijze is in grote lijnen gelijk aan eerdere versies, echter er is een apart tabblad gemaakt voor startup parameters. Voeg hier de parameter toe, zonder een puntkomma.
Je kunt met het commando DBCC TRACESTATUS() opvragen welke traceflags er actief zijn en of deze voor een sessie actief zijn of globaal. Geef je -1 op, dan zie je de globale traceflags, anders zie je alleen je sessie traceflags. Je kunt ook een tracenummer opgeven om te controleren of deze actief is:
DBCC TRACESTATUS(-1)
Omdat traceflags globaal aangezet kunnen worden, is dit een handige methode (in onderstaand voorbeeld activeren we traceflag 4199)
Met het commando DBCC TRACEOFF() kan een traceflag voor een sessie of globaal uitgezet worden. Voeg -1 toe om de traceflag globaal uit te zetten:
DBCC TRACEOFF(4199, -1)
Om een traceflag te verwijderen als opstart parameter, zie de beschrijving hoe een traceflag toe te voegen. Bij MSSQL 2012 en hoger kun je op de –T optie gaan staan en dan op de knop [remove] klikken. Let erop dat andere startup parameters niet per ongeluk ook verwijderd worden.
DBA.nl is de allround database expert gespecialiseerd in het inrichten, onderhouden, monitoren van database omgevingen. Daarnaast geven wij advies en nemen performance problemen weg.
Regelmatig brengt Microsoft nieuwe versies uit van Microsoft Windows Server. Wat zijn hier de gevolgen van? En hoe zorgt...
Details +
Regelmatig brengt Microsoft nieuwe versies uit van SQL Server. Lees hier meer. ...
Details +
Oracle brengt regelmatig nieuwe updates uit voor haar RDBMS. Door deze te installeren blijft uw database omgeving veilig...
Details +