SQL Server 自体の問題ではなく、プログラミングの問題(ADO.netの使い方の問題)だと思うが、SQL Server がメモリをどんどん喰っていく。SQL Server Management Studio でDBのバックアップやコピーなどをすると、ちょっとづつメモリを喰っていき、終わっても、SQL Server Management Studio を終了させても、メモリを解放しない。
余談だが、ADO.netはADOなんかと比べてメモリリークしやすい。設計、製造工程で意識しておかないとこのような自体になりやすい。

そいつは資源の無駄遣いであり、メモリを解放してやる必要がある。

Webシステムなどではメンテ画面を出す等の処置が必要だが、一番簡単な方法は「DBMSの再起動」である。これでメモリががっつりと解放される。

ただ、こればかりはSQL Server の Agent から操作するわけにもいかない。手作業でも良いが、定期的に自動再起動するようにするのがいいだろう。

簡単なのはDOSコマンド。

net stop MSSQLSERVER
net start MSSQLSERVER

を実行すればよい。これをバッチファイル化して、ATコマンドとかでスケジューリングするといいだろう。


ただし、SQL Server Agent を使っているときは話は別だ。SQL Server Agent は SQL Server が稼働していることが前提である。よって、落とすときは SQL Server より先に、起動時は SQL Server より後に、コントロールをする必要がある。

net stop SQLServerAgent
net stop MSSQLSERVER
net start MSSQLSERVER
net start SQLServerAgent

てな具合である。社内のLAN内にあるようなものなら、週に一度、もしくは月に一度くらいはこれを実行させた方がいいかもしれない。