SQL Server 2005 SP2 x64 EditionをWindows Server 2003 R2 x64(4GB RAM)で動かしています。用途はWSS 3.0とWSUS 3.0なのですが、これがまぁ気持ちいいくらいのメモリ食いで、ほっとくとどんどんメモリを確保します。
物理メモリ2GB超とっていて、さすがにVirtual Serverに支障が出るかな?と思って、制限しようかとヘルプを見ると…
Windows Server 2003 では、SQL Server はメモリ通知 API QueryMemoryResourceNotification を使用して、いつバッファ プールがメモリの割り当てまたは解放を行うことができるかを判断します。
確かにGuest OSを起動すると一気にメモリが解放されました。やるな。ところで、QueryMemoryResourceNotification function (Windows)というAPIがあるとは知らなかった。まさにSQL ServerとかExchange Serverみたいなサーバ向けのAPI。