都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

いいお天気なので、空を眺めながら、バッファプールを眺めてみる

 今日、関東はとてもいい天気です。空でも眺めながら、バッファプールを眺めてみます。(なんだそれ....)
f:id:koogucc11:20150426095258j:plain

 バッファプールの状態を知るには、sys.dm_os_buffer_descriptors を使用します。下記のクエリを SQL Server Management Studio で実行してみましょう。

SELECT * 
FROM sys.dm_os_buffer_descriptors

f:id:koogucc11:20150426122009p:plain

 sys.databases,sys.allocation_units などと関連付けることで、色々な情報を参照することができます。

SELECT d.name,
       au.*,
       obd.*,
       obpec.*
FROM sys.dm_os_buffer_descriptors obd 
INNER JOIN sys.databases d 
ON obd.database_id = d.database_id
INNER JOIN sys.allocation_units au
ON obd.allocation_unit_id = au.allocation_unit_id
INNER JOIN sys.database_files df
ON obd.file_id = df.file_id
LEFT OUTER JOIN sys.dm_os_buffer_pool_extension_configuration obpec
ON obd.file_id = obpec.file_id
ORDER BY d.name

f:id:koogucc11:20150426123553p:plain

 sys.dm_os_buffer_descriptors のドキュメントですが、バッファプール拡張についての記載が漏れてますね。そのうち修正されるでしょう。
f:id:koogucc11:20150426123933p:plain

 更に、sys.partition とか JOINしたら、インデックス情報と合わせて参照できちゃいますね。クエリは今度作ろう....

※ BI スキルがほしい...