2010-12-15 3 views
0

私はオンラインサーバーでSQL Server 2008 Enterpriseを使用していますが、メインデータベースには月間200万レコードを超えるテーブルがあり、SQL Serverはインストールされた4GBメモリサーバーのRAMを閉じます。SQL ServerとRAM

SQL ServerのRAMを2GBに制限しましたが、これらのRAMを使用すると、接続が正常に機能しなくなり、処理が遅くなりすぎます。

正常ですか?これらの大きなテーブルにクエリを実行した後、SQL ServerからRAMを取得するにはどうすればよいですか?

答えて

5

SQL Serverを実行する専用のWindowsサーバーでは、いくつかのカウンターによって5-15 MBの空きRAMが使用されます。それは正常です。メモリリークはありません。

4GBのRAMが搭載されている場合は、32ビットで/ 3GBスイッチを使用してSQL ServerがRAMを動作させることを検討します。 64ビットの場合は、RAMを増やして、SQL ServerがRAM自体を動作させるようにします。

RAMのSQL Serverが枯渇すると、データがメモリに書き込まれるたびにディスクスラッシングが発生します。

SQL Serverが専用のボックスにない場合は、それを1つに移動します。他のSOの質問に

盛り合わせリンク:OneTwo、リンクのThree

+0

ありがとう、私は同じサーバー上のホストされたWebサイトが遅く実行されている間にramを管理するためにsqlサーバーを残すときに64ビットWindowsサーバー2008を使用していますSQL Serverが遅すぎるといくつかのクエリどうしてか分かりません?私がラムを見ると、それは低くなる!それは正常です – Hadad

+1

@ハダッド、あなたはデータベースと同じサーバー上のWebアプリケーションをホストすべきではありません。 – HLGEM

+0

ありがとうたくさんのSQLサーバを別のマシンに分ける – Hadad

1

メモリをSQL Serverに処理させる必要があります。メモリにロードするものは、実行速度と直接関係しているため、与えられたものを試して使用します。それを制限することを心配しないでください。必要になったときにシステム上の他のプロセスにメモリを戻し、それらのプロセスが完了したときにそのプロセスを再要求します。

3

ここを参照してください:それは可能グラブをできる限りThe SQL Server Memory Leak Confusion

基本的にSQL Serverは、できるだけ多くのメモリを使用しますが、それはRAMからよりもディスクから読み取ることがはるかに高価です。 RAMを解放するには、ディスクを再起動することができますが、すべてのクエリが遅くなります。

+0

1 - ありがとう! –

1

おそらくが必要です。 SQLサーバーはたくさんのRAMを使用します。これは、結果とテーブルをメモリにキャッシュすることを可能にするだけのメモリを使用するように設計されているため、将来的にアクセス速度が大幅に向上します。

SQLサーバー用のメモリが不足している場合は、クエリとキャッシュが自動的に「エージング」され、最も古いものが削除されます。

Read here詳細については、