Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » システム・オブジェクト » システム・プロシージャ » システム・プロシージャのアルファベット順リスト

 

sa_column_stats システム・プロシージャ

指定したカラムについて多様な統計情報を返します。この統計情報は、オプティマイザが使用するために保守されているカラムの統計情報とは関係がありません。

構文
sa_column_stats ( 
[ tab_name ]
[, col_name ]
[, tab_owner ]
[, max_rows ]
)
引数
  • tab_name   テーブルの名前を指定する任意の CHAR(128) パラメータ。このパラメータが指定されていない場合、すべてのテーブルのすべてのカラムについて統計情報が計算されます。

  • col_name   統計情報を計算するカラムを指定する任意の CHAR(128) パラメータ。このパラメータが指定されていない場合、指定したテーブルのすべてのカラムについて統計情報が計算されます。

  • tab_owner   テーブルの所有者を指定する任意の CHAR(128) パラメータ。このパラメータが指定されていない場合、データベース・サーバは、指定された tab_name と一致する最初のテーブルの所有者を使用します。

  • max_rows   計算に使用するロー数を指定する任意の INTEGER パラメータ。このパラメータが指定されていない場合、デフォルトで 1000 ローが使用されます。0 を指定すると、データベース・サーバはテーブル内のすべてのローに基づいて比率を計算します。

結果セット

table_owner、table_name、column_name という例外はありますが、文字列以外のカラムで結果セットのすべての値は NULL です。また、空のテーブルの場合、num_rows_processed と num_values_compressed は 0 ですが、その他の値はすべて NULL です。

カラム名 データ型 説明
table_owner CHAR(128) テーブルの所有者。
table_name CHAR(128) テーブル名。
column_name CHAR(128) カラムの名前。
num_rows_processed INTEGER 統計情報を計算するときに読み取るローの総数。
num_values_compressed INTEGER 圧縮されるカラムの値の数。カラムが圧縮されない場合、この値は 0 です。
avg_compression_ratio DOUBLE カラムの圧縮済み値の平均圧縮率 (サイズの縮小率で表示)。カラムが圧縮されない場合、この値は NULL です。
avg_length DOUBLE カラムのすべての NOT NULL 文字列の平均長。
stddev_length DOUBLE カラムのすべての NOT NULL 文字列長の標準偏差平均。
min_length INTEGER カラムのすべての NOT NULL 文字列の最短長。
max_length INTEGER カラムの文字列の最大長。
avg_uncompressed_length DOUBLE カラムの圧縮されていないすべての NOT NULL 文字列の平均長。
stddev_uncompressed_length DOUBLE カラムの圧縮されていないすべての NOT NULL 文字列長の標準偏差平均。
min_uncompressed_length INTEGER カラムの圧縮されていないすべての NOT NULL 文字列の最短長。
max_uncompressed_length INTEGER カラムの圧縮されていないすべての NOT NULL 文字列の最大長。
備考

データベース・サーバは、指定した所有者、テーブル、カラムの各名前と一致するカラムを決定します。次に、各指定したカラムのデータについて統計情報を計算します。デフォルトで、データベース・サーバはデータの先頭 1000 ローのみを使用します。

avg_compression_ratio の場合は、値を 100 以上にすることはできません。ただし、極めて圧縮しにくいデータが圧縮カラムに挿入された場合は (たとえば、圧縮済みデータなど)、0 未満になることがあります。値が高いほど、高い圧縮率であることを示します。たとえば、戻り値が 80 の場合、圧縮データのサイズは圧縮していない場合の 80 % 未満です。

パーミッション

DBA 権限が必要です。

関連する動作

なし

参照

次の例では、SELECT 文で sa_column_stats システム・プロシージャを使用して、カラムの圧縮で最も圧縮されるデータベースのカラムを決定します。

SELECT * FROM sa_column_stats() 
  WHERE num_values_compressed > 0 
  ORDER BY avg_compression_ratio desc;

次の例では、前の例からの選択を絞り込み、bsmith が所有されているテーブルのみを検索します。

SELECT * FROM sa_column_stats( tab_owner='bsmith' ) 
  WHERE num_values_compressed > 0 
  ORDER BY avg_compression_ratio desc;