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

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

統計情報をみる DBCC SHOW_STATISTICS の使い方について少しだけ説明してみる

 過去に少しだけ統計情報に関する記事を書いています。
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com

 今更感はありますが、DBCC SHOW_STATISTICS の使い方について少しだけ説明したいと思います。折角なので、データベースは WideWorldImporters を使用します。
ryuchan.hatenablog.com

 テーブルは Sales.OrderLines を使用します。下記のコマンドを SQL Server Management Studio で実行してみましょう。IX_Sales_OrderLines_Perf_20160301_01 の統計情報を参照することができます。

DBCC SHOW_STATISTICS ('WideWorldImporters.Sales.OrderLines','IX_Sales_OrderLines_Perf_20160301_01')

f:id:koogucc11:20160813181401p:plain

 統計のプロパティで参照できるものと同様です。 
f:id:koogucc11:20160814071747p:plain

 インデックスの各列の組み合わせ情報を参照することができます。IX_Sales_OrderLines_Perf_20160301_01 は、PickingCompletedWhen, OrderID, OrderLineID がインデックスなので、下図のような組み合わせの情報を取得することができます。

DBCC SHOW_STATISTICS ('WideWorldImporters.Sales.OrderLines',
                      'IX_Sales_OrderLines_Perf_20160301_01') WITH DENSITY_VECTOR

f:id:koogucc11:20160814071039p:plain

 ヒストグラムを参照することができます。ヒストグラムに関しては、過去のブログを参照してください。

DBCC SHOW_STATISTICS ('WideWorldImporters.Sales.OrderLines',
                      'IX_Sales_OrderLines_Perf_20160301_01') WITH HISTOGRAM

f:id:koogucc11:20160814071436p:plain

 JOIN 句を使用すると、各オプションの掛け合わせた情報を参照することができます。下記の例では、列毎の カーディナリティなどを参照することが可能です。
 PickingCompletedWhen, OrderID, OrderLineID の列の中でカーディナリティが一番高いのは、OrderLineID で、二番目が OrderID、三番目が PickingCompletedWhen となります。それ以外にも、列ごとの平均データ長、サンプリングの割合、ヒストグラムのレンジ数、なども知ることができます。

DBCC SHOW_STATISTICS ('WideWorldImporters.Sales.OrderLines',
                      'IX_Sales_OrderLines_Perf_20160301_01') WITH STAT_HEADER JOIN DENSITY_VECTOR

f:id:koogucc11:20160814071547p:plain

f:id:koogucc11:20160814203613p:plain

f:id:koogucc11:20160814203630p:plain

 統計情報に関しては、いろいろ書いていますので参照してみてください。
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com
ryuchan.hatenablog.com

 DIESEL のデザインで SmartWatch が出たらいいのに。

 wena wrist もかっこいいけど。SuicaJAL タッチ&ゴーが対応してくれるを待ってる。