Ich bin heute über den Artikel "Microsoft SQL Server I/O subsystem requirements for the tempdb database" im Weblog von Bejamin Jones gestolpert. Wir gehen davon aus, dass unsere Kunden langsam aber sicher serverseitig auf 64-Bit-Server umsteigen. Das hat für sie den Vorteil, dass sie für vergleichsweise wenig Geld richtig viel Hauptspeicher nutzen können. Ich denke das dürfte ein genereller Trend werden.
Im kleineren bis mittleren Büros ist der 32-Bit SQL Server Standard Edition ziemlich verbreitet. Warum solte man auch viel Geld für die Enterprise Edition ausgeben. Die Standard Edition nutzt maximal 2 GBytes Hauptspeicher. Um einen Performance-Boost rauszuholen, könnte man jetzt hergehen und die TempDB auf eine RamDisk legen.
Dabei muss man allerdings ein paar Dinge beachten (weitere stehen in dem Whitepaper):
- Die RamDisk muss schon vor dem Start des SQL Servers "online" sein. Da könnte es mit der Startreihenfolge der Dienste schwierig werden.
- Es muss so viel RAM in dem Srever stecken, dass weder der SQL Server noch die RamDisk ausgelagert werden. Die dabei auftretenden sehr negativen Effekte kann man unter dem Stichwort "double page fault" in der klassischen DB-Literatur nachlesen.
- Die RamDisk sollte genug Spielraum haben, damit die TempDB wachsen kann. Sonst kommt die Meldung, dass das Device voll ist. Die maximale Größe der TempDB ist nach meiner Erfahrung so gut wie nicht vorherzusagen, wenn die Anwender nicht einfach nur buchen. sondern auch Auswertungen fahren können.
Trotzdem glaube ich, dass sich das in vielen Fällen lohnen dürfte.