SQL Server の構造について記事にしてみる - その4 ( SQL Server 2019 をインストールしたら、sys.dm_db_page_info というものを見つけたのでちょっと動きをしらべてみた ) -
少しだけ SQL Server 2019 をお触りしてみました。その中で一つ気になった sys.dm_db_page_info (Transact-SQL) - SQL Server | Microsoft Docs というものがあり、もしや DBCC PAGE の代替となるものでは!と思い調べてみました。
DBCC PAGE といえば、『 SQL Server の構造について記事にしてみる 』 でインデックスの構造を調査するのに使用していました。
ryuchan.hatenablog.com
その後、図とか色々と書くのが面倒なため、シリーズはその3で打ち切りとなっていました(笑) 今回はちょっと興味を持ったので、勢いにまかせて一気に記事書きます。
※『 SQL Server の構造について記事にしてみる - その3 』で使用したクエリをベースにします。
※ データベースは、AdventureWorks2017 を使っています。
※テーブルは、Sales.SalesOrderHeader を使っています。
それでは、早速下記のクエリを SQL Server Management Studio で実行してみましょう。
SELECT dpa.allocated_page_page_id, dpa.page_type, dpa.page_type_desc, dpa.page_level, dpa.next_page_page_id, dpa.previous_page_page_id FROM sys.dm_db_database_page_allocations(DB_ID(), OBJECT_ID('Sales.SalesOrderHeader'), null, NULL, 'DETAILED') dpa
次に、下記のクエリを SQL Server Management Studio で実行してみましょう。
DBCC TRACEON(3604) DBCC PAGE(N'AdventureWorks2017',1,16416,3) WITH TABLERESULTS DBCC TRACEOFF(3604)
次に、dm_page_info を使ったクエリを SQL Server Management Studio で実行してみましょう。
SELECT pi.* FROM sys.dm_db_database_page_allocations(DB_ID(), OBJECT_ID('Sales.SalesOrderHeader'), null, NULL, 'DETAILED') dpa CROSS APPLY sys.dm_db_page_info(dpa.database_id, dpa.allocated_page_file_id, dpa.allocated_page_page_id, 'DETAILED') pi WHERE dpa.allocated_page_page_id = 16416
DBCC PAGE のヘッダー情報にあたるものくらいが取得できるようです。Undocumented な DBCC コマンドが dmv 化されたか!?と思ったのですが、DBCC PAGE の全ての情報を参照できるものでは無いようです。バージョンアップされることで、データ部、個別情報を出力できる dmv が追加( dm_page_info_detail... とか? )されるのでしょうか。今後のバージョンアップに期待ですね。
最新の iPad mini が欲しい。
Apple iPad mini 4 (Wi-Fi, 128GB) - シルバー (第4世代)
- 出版社/メーカー: Apple(アップル)
- 発売日: 2015/09/17
- メディア: Personal Computers
- この商品を含むブログを見る
けど、iPad Pro 11 に使える Pencil も欲しい。
www.amazon.co.jp