4

開発サーバーである sql srever 2008 インスタンスがあります。すべての開発者は、異なるデータベース上のサーバーで同時に作業します。RAM のメモリ使用量は 2GB を超え、サーバーの合計 RAM は 4GB です。sys.sysprocesses リストにブロックされたプロセスはありません。sum(memusage) はわずか 190 であり、接続されている現在のプロセスの合計、つまり count(*) は sys.sysprocesses から 111 です。プロセス SQL サーバーで 2000 MB を超える使用量を警告する powershell スクリプトを構成しました。私は継続的に警戒しています。この状態で何をすべきかという解決策が見つかりません。

sum(memusage) =190 と RAM 使用量 2000+MB で混乱しています。RAMを消費する残りのプロセスはどこにありますか。

私を助けてください。

ありがとう

ニテシュ・クマール

4

1 に答える 1

3

[サーバー プロパティ]ウィンドウの[メモリ]ペイン( Server Management Studioでオブジェクト エクスプローラーのデータベース サーバー アイコンを右クリックし、[プロパティ]を選択) で、最大サーバー メモリの値を確認します。マシンの総メモリよりもわずかに少ないメモリを割り当てると、うまく機能することがわかりました。

OS が強制的に仮想メモリを使用しないようにするため、合計メモリよりわずかに少なくなります。

SQL Server は、この制限まで、必要なだけのメモリを消費します。これを物理メモリの量に制限すると、SQL Server は仮想メモリではなく tempdb を使用するようにクエリを最適化します。これはより良いことがわかりました。

SQL Server がすべてのメモリを使用していない場合は、単純に必要ない可能性があります。これは、一部のサーバーでの経験です。ボトルネックは別の場所にある可能性があります (おそらくディスク IO)。そのため、次のステップは、実行中のクエリとその理由を理解することです...

于 2012-06-08T11:45:32.653 に答える