Trace Flag 845

Heute gab es eine interessante Session bei 24h of PASS zum Thema Memory. Hier ein Hinweis, den ich dort erhalten habe zum Trace Flag 845 und der Unterstützung von Locked Pages bei der Standard Edition von SQL Server 2005, 2008 und 2008 R2. Alles nur bei 64-Bit Installationen.

Bis zu den im folgenden aufgeführten kumulativen Updates war die Verwendung der Option Lock Pages in Memory noch der Enterprise Edition vorbehalten. Aber ab

  • cumulative update package 4 for SQL Server 2005 Service Pack 3
  • cumulative update package 2 for SQL Server 2008 Service Pack 1

ist dies auch in der jeweiligen Standard Edition auf 64-Bit möglich. Für SQL Server 2008 R2 wird kein besonderes Update benötigt.

Der Artikel zu Support for Locked Pages weist aber auch noch einmal extra darauf hin, dass bei diesen drei Versionen jeweils das Trace Flag 845 zu setzen ist. Die Verwendung von Trace Flags sollte vorher gründlich getestet werden.

Zur Überprüfung, ob das Trace Flag denn auch Wirkung zeigt, sollte man nach einem Neustart der Instanz einen Blick in das Errorlog werfen. Dort sollte folgende Meldung stehen:

  • Using locked pages for buffer pool

Was kann man tun, wenn diese Meldung nicht erscheint?

  • Noch einmal kontrollieren, ob Trace Flag 845 korrekt gesetzt ist. Trace Flags die als startup Option gesetzt werden, werden am Anfang des Errorlogs ausgegeben.
  • Kontrollieren, ob das Dienstkonto des SQL Servers das Recht "Lock Pages in Memory" hat.

Das setzen von Trace Flags wird hier beschrieben.

SQL Server 2012

Einen interessanten Beitrag zu Trace Flag 845 und SQL Server 2012 findet man im blog von Aaron Bertrand.