Mittwoch, 8. Februar 2012

Virtual Server und SQL Server (Express)

Gerne hosten wir auf einem externen Virtual Server mehrere Anwendungen im IIS sowie eine SQL Server Express Instanz. Eigentlich kein großes Problem, auch wenn der vServer nur 2GB Speicher hat.
Allerdings holt sich der SQL Server auch gerne mal fast den gesamten freien Speicher. Für den Fall der Fälle - man weiß ja nie. Ungünstig wenn dieser Speicher aber auch nicht rechtzeitig wieder freigegeben wird, wenn andere Anwendungen ihn benötigen. So verabschiedet sich dann der IIS regelmäßig und lieferrt höchstens noch ein "503 - Service unavailable" an seine Außenwelt.
Dieses Verhalten kann man dem SQL Server abgewöhnen, indem man ihm vorschreibt, wieviel Speicher er sich maximal holen soll. Folgende Statements sorgen dafür, das Maximum auf 512 MB zu beschränken:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 512;
GO
RECONFIGURE;
GO
Anschließend den SQL Server (SQLEXPRESS) Dienst neu starten, und schon ist er nicht mehr so hungrig.