okinawa

IT勉強メモ

統計情報とは

統計情報とは

実行計画を練るためのネタ元。

  • 各テーブルのレコード数
  • 各テーブルの列数と列のサイズ
  • 列値のカーディナリティ(値の個数)
  • 列値のデータ分布(どの値がいくつあるかのヒストグラム)
  • 列内のNULLの数
  • インデックス情報

カーディナリティの補足

カーディナリティは例えば、下記は値が3種類あるので3。

店鋪コード
10
20
30

ヒスグラムの補足

ヒストグラムは例えば、下記は01が3。02が2。03が1。というように同じ値の個数。

店鋪コード
10
10
10
20
20
30

例:列値のデータ分布(どの値がいくつあるかのヒストグラム)
店舗コード 0001がTableAに1万個
店舗コード 0002がTableAに5千個
みたいに統計情報に登録できる。

この統計情報をもとに実行計画を作ってくれる。
店舗コード 0001が1万個かあじゃあWhere句で「店舗コード = 0001」が指定されたら気合い入れて検索せんとなあ。
じゃあCPUを並列で複数実行したろ!
みたいな。
実行計画を見るとparallel~というのが並列実行。

SSMSだとインデックスフォルダの中に統計情報が入っている。

参考書籍