カラムのヒストグラムを取り出します。
sa_get_histogram( col_name, tbl_name [, owner_name ] )
col_name ヒストグラムを取得する対象のカラムを指定する CHAR(128) パラメータ。
tbl_name col_name があるテーブルを指定する CHAR(128) パラメータ。
owner_name tbl_name の所有者を指定する任意の CHAR(128) パラメータ。
カラム名 | データ型 | 説明 |
---|---|---|
StepNumber | SMALLINT | ヒストグラムのバケット番号。最初のバケット (StepNumber = 0) の頻度は、NULL の選択性を示します。 |
Low | CHAR(128) | バケット内の最も低いカラム値 (その値を含む)。 |
High | CHAR(128) | バケット内の最も高いカラム値 (その値を含まない)。 |
Frequency | DOUBLE | バケット内の値の選択性。 |
このプロシージャは、内部診断を目的としており、指定したカラムのデータベース・サーバからカラム統計を取り出します。この統計が ISYSCOLSTAT システム・テーブルに永続的に格納されている場合、サーバの実行中に統計はメモリに保持され、定期的に ISYSCOLSTAT に書き込まれます。この結果、sa_get_histogram システム・プロシージャが返す統計情報は、任意の時点で ISYSCOLSTAT から選択して取得した情報とは異なります。
sa_flush_statistics システム・プロシージャを使用してメモリに保存されている最新の統計情報で ISYSCOLSTAT を手動で更新できます。ただし、この方法は運用環境では推奨されません。診断目的でのみ使用してください。sa_flush_statistics システム・プロシージャを参照してください。
単一バケットは、結果セット内の Low 値が対応する High 値と等しいことで示されます。
ヒストグラム・ユーティリティを使用して、ヒストグラムを表示することをおすすめします。ヒストグラム・ユーティリティ (dbhist)を参照してください。
文字列カラムに対する述部の選択性を決定するには、ESTIMATE 関数または ESTIMATE_SOURCE 関数を使用します。文字列カラムに対して、sa_get_histogram とヒストグラム・ユーティリティが ISYSCOLSTAT システム・テーブルから取り出すものはありません。文字列データを取り出そうとすると、エラーが発生します。ESTIMATE 関数 [その他]とESTIMATE_SOURCE 関数 [その他]を参照してください。
たとえば、統計が最近削除された場合は、テーブルまたはマテリアライズド・ビューに対する統計 (ヒストグラムを含む) が存在しないことがあります。この場合、sa_get_histogram システム・プロシージャの結果セットは空です。テーブルまたはマテリアライズド・ビューの統計を作成するには、CREATE STATISTICS 文を実行します。CREATE STATISTICS 文を参照してください。
DBA 権限が必要です。
なし
たとえば、次の文は、SalesOrderItems テーブルの ProductID カラムのヒストグラムを取り出します。
CALL sa_get_histogram( 'ProductID', 'SalesOrderItems' ); |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |