web-dev-qa-db-ja.com

DBエンジンの盗まれたサーバーのメモリが高すぎる

System Center Operations Manager(SCOM)からエラーが発生します。

このエラーを解決するには?

SQL DB 2012エンジンの盗まれたサーバーのメモリが高すぎます。

クエリを実行してこのカウンターを取得します。

╔═══════════════════════════════╦═════════════╗
║ Stolen Server Memory (MB)     ║ 7354.773437 ║
║ Lock Memory (MB)              ║ 106.195312  ║
║ Free Memory (MB)              ║ 64.632812   ║
║ Connection Memory (MB)        ║ 24.203125   ║
║ Log Pool Memory (MB)          ║ 14.085937   ║
║ Optimizer Memory (MB)         ║ 2.351562    ║
║ Granted Workspace Memory (MB) ║ 1.296875    ║
║ Cursor memory usage           ║ 0.000000    ║
║ Cursor memory usage           ║ 0.000000    ║
║ Cursor memory usage           ║ 0.000000    ║
╚═══════════════════════════════╩═════════════╝
8
Darko Milic

そのようなメッセージを何回目にしますか? 1回または2回の場合は無視できます。

この古いサポート記事 および DBCC MEMORYSTATUSの使用方法 に記載されている「盗まれたメモリ」は次のとおりです。

盗まれたメモリは、ソートまたはハッシュ操作(クエリワークスペースメモリ)に使用されているバッファ、またはロック、トランザクションコンテキスト、接続情報などの内部データ構造を格納するための割り当て用の汎用メモリストアとして使用されているバッファについて説明します。レイジーライタープロセスは、盗まれたバッファーをバッファープールからフラッシュすることはできません。

通常、メモリはバッファプールから取得されます。 DBCC MEMORYSTATUSを実行して、出力にStolen Pagesと表示される場合、これは、一部のプロセスがであることを意味しますバッファプールからメモリを盗む必要以上にメモリを盗み、そのプロセスを見つける必要があります。

大規模な並べ替え操作を実行する操作が実行されていた可能性が高く、同時にSQL Serverがメモリを大量に消費していたため、このメッセージが表示されました。 OOMの問題に直面していない限り、このメッセージは警告と見なされます。

10
Shanky