実際には、あなたが探しているものを得るためにきれいな小さなトリックがあります。問題/疑問は、SQL Serverを積極的に必要としないメモリを「一時的に」放棄させ、必要に応じてそれを再開させる方法です。
これを行うには、次のスクリプトを実行します:{低ウォーターマーク}と(MB単位){ハイウォーターマーク}のための独自の値で
EXEC sys.sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'{low water mark}'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'{High water mark}'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'show advanced options', N'0'
RECONFIGURE WITH OVERRIDE
GO
入れ。
これはメモリを最小限に抑え、SQL Serverが必要とする場合はすぐに再度開きます。
残っていることは、スクリプトを定期的に実行するようにスケジュールすることです。
勧告:
SQL Serverが頻繁に使用されていない
、6時間ごとに自動的にこれを実行してみてください。頻繁に使用される場合は、24時間ごとに1回実行してください(夜中や1日の始まりの前など)。あなたの使い方は変わります。
これらの数字はどのように測定していますか?タスクマネージャは誤解を招くような数字を与えることがあります(私は常にperfmonを選択し、プライベート/仮想バイトを参照します) –
タスクマネージャとPerformanceCounterクラスを使用する別個のdotnetアプリケーションを使用してSQLサーバーを監視しています –