SQL Server のメモリ状態のチェック方法に関して質問受けてた気がするので、記事にしちゃいます。眠いので、少し手抜きになってますがお許しください(=_=)
メモリの状態を知る必要があるので、物理メモリ、SQL Server のメモリとか一度にチェックできるようにしたいと思います。OS 自体のメモリ状態の把握には、sys.dm_os_sys_memory を使用し、SQL Server のメモリ状態の把握には、sys.dm_os_sys_info を使用します。それでは、早速 SQL Server Management Studio で下記のクエリを実行してみましょう。
SELECT
[総物理メモリサイズ(Kbyte) ] = osm.total_physical_memory_kb,
[使用できる物理メモリサイズ(Kbyte) ] = osm.available_physical_memory_kb,
[SQL Server がコミット済みにしてるメモリサイズ(Kbyte)] = osi.committed_kb,
[SQL Server が使用可能だと思っているメモリサイズ(Kbyte)] = osi.committed_target_kb,
[SQL Server が使用可能だと思っているメモリサイズ(Kbyte, committed_target_kbと同じだよ)] = osi.visible_target_kb,
[メモリまだ余裕状態] = osm.system_high_memory_signal_state,
[メモリもう余裕ない状態] = osm.system_low_memory_signal_state,
[メモリの状態の説明] = osm.system_memory_state_desc
FROM
sys.dm_os_sys_info osi CROSS APPLY sys.dm_os_sys_memory osm
ざっくり説明すると、下記の通りです。
- [総物理メモリサイズ(Kbyte)] と [使用できる物理メモリサイズ(Kbyte)]はみなさまご存じの通り( My Lenovo の場合 )。
- [SQL Server が使用可能だと思っているメモリサイズ(Kbyte)] は、OS の状況や、下図の MaxServerMemory の状態により変動します。
- [メモリまだ余裕状態]:1の場合は、メモリにまだ余裕がある状態です。[メモリもう余裕ない状態]:1の場合は、メモリに余裕のない状態です。
※夏には行けなかったので、秋になったらキャンプ行きたい♪今年は、ファイアグリル買わないとなぁ。どれがいいかなぁ。週末お店に見に行ってみよう♪