SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

sys.fn_PhysLocCracker を使用したページ番号の取得

leave a comment

今まで、sys.fn_PhysLocFormatter を使用したページ情報の取得を何回か、ブログで紹介させていただきました。

インテリセンスで sys.fn_PhysLocCracker という似たような関数が表示されていたのですが、今まで使用したことがありませんでした。
image
試しにこの関数を使ってみたところこちらのほうがいろいろと取り回しがよさそうだったので少し紹介してみたいと思います。

■sys.fn_PhysLocCracker を使用したページ番号の取得


sys.fn_PhysLocFormatter は varchar の値を返しましたが、sys.fn_PhysLocCracker はテーブルを返します。

そのため、CROSS APPLY を使用して実行します。
以下のようなクエリで実行可能です。

SELECT * FROM Table_1
CROSS APPLY sys.fn_PhysLocCracker(%%physloc%%)

 

image

sys.fn_PhysLocFormatter の場合はこのような形式でページ情報を取得できました。
image

sys.fn_PhysLocCracker では file_id / page_id / slot_id が独立した列として取得されますので、特定のページに含まれるデータのみを抽出といったことも可能です。
image

便利な関数があるものですね~。

Share

Written by Masayuki.Ozawa

11月 4th, 2011 at 9:05 pm

Posted in SQL Server

Tagged with

Leave a Reply