指定したカラムについて多様な統計情報を返します。この統計情報は、オプティマイザーが使用するために管理されているカラムの統計情報とは関係がありません。
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; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |