都内で働くSEの技術的なひとりごと

都内でサラリーマンやってます。マイクロソフト系(たまに、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 スキルがほしい...