GENERATE_SMART_STATS_FOR_FIELDS (非推奨)¶
注釈
このストアドプロシージャは廃止されており、Denodo Platform の次のメジャーバージョンでは削除される可能性があります。代わりに GET_STATS_FOR_FIELDS プロシージャを使用してください。
非推奨のすべての機能のリストは、「 Denodo Platform で廃止された機能 」を参照してください。
説明
ストアドプロシージャ GENERATE_SMART_STATS_FOR_FIELDS
は、JDBC 基本ビューのフィールドの統計 (各フィールドの最小値、最大値など) とビューの行数を収集 および 格納します。
これらの統計を取得するために、このプロシージャは、 GENERATE_STATS
プロシージャおよび GENERATE_STATS_FOR_FIELDS
プロシージャのように複数の集約関数を使用して SELECT
クエリを実行するのではなく、データベースのシステムテーブルに対してクエリを実行します。このアプローチのメリットは、ビューの統計をはるかに早く取得できることです。
このプロシージャは、JDBC 基本ビューの統計を収集する場合のみ使用できます。ビューの他のタイプの統計を収集するには、 GENERATE_STATS または GENERATE_STATS_FOR_FIELDS を使用します。
JDBC 基本ビューの統計を取得する前に、ソースデータベース (Oracle、IBM DB2 など) にこのテーブルの統計が存在することを確認してください。統計が存在しないか、古くなっている場合、正確な情報が収集されず、コストベースの最適化によって次善の実行プランが選択されない可能性があります。
構文
GENERATE_SMART_STATS_FOR_FIELDS (
mode : text
, view_name : text
, fields: array
, table_stats : boolean
, database_name : text
)
mode
: このプロシージャによる統計の収集方法を設定します。有効な値を以下に示します。SMART_ONLY
: このプロシージャは、データベースのシステムテーブルから統計を収集します。このモードは、ビューの [Options] の [Statistics] タブにある [Complete missing statistics…] チェックボックスをオフにするのと同じことです。
SMART_THEN_ATSOURCE_THROUGH_VDP
: このプロシージャは、データベースのシステムテーブルから統計を収集します。次に、SELECT
ステートメントを実行して、データベースのシステムテーブルから取得できない統計を収集します。このモードは、ビューの [Options] の [Statistics] タブにある [Complete missing statistics…] チェックボックスをオンにするのと同じことです。
ATSOURCE_THROUGH_VDP_ONLY
: このプロシージャは、システムテーブルに対してクエリを実行しません。代わりに、SELECT
ステートメントを実行します。このモードは、GENERATE_STATS
プロシージャまたはGENERATE_STATS_FOR_FIELDS
プロシージャを実行するのと同じことです。このオプションは、Administration Tool では使用できません。
view_name
: このプロシージャは、このビュー (大文字/小文字が同じ) の統計を収集します。fields
: 統計を収集する対象となるフィールドで構成されるレジスターの配列。各レジスターには以下の 3 つのフィールドがあります。フィールドの名前。
stats
: 収集する統計の配列。FIELD_COUNT_DISTINCT
(個別の値)、FIELD_AVG_LEN
(平均サイズ)、FIELD_MAX
(最大値)、FIELD_MIN
(最小値)、およびFIELD_NUM_NULLS
(NULL 値) です。null
の場合、フィールドのすべての統計を収集します。source_stat_name
: このビューの統計を保持しているデータベース内のオブジェクトの名前。Microsoft SQL Server などの一部のソースでは、同じフィールドまたは一連のフィールドから複数の統計を生成し、それらを異なるオブジェクトに格納できます。
null
の場合、このプロシージャはデフォルトのオブジェクトから統計を取得します。該当しない場合、この値は無視されます。
table_stats
:true
の場合、このプロシージャはテーブルの行数を取得します。false
の場合は取得しません。databasename
:view_name
が属するデータベースの名前。null
の場合、プロシージャは現在のデータベースのview_name
を検索します。
例
例 1
CALL GENERATE_SMART_STATS_FOR_FIELDS('SMART_ONLY'
, 'internet_inc'
, {
ROW('iinc_id',NULL,NULL),
ROW('specific_field1',NULL,NULL),
ROW('taxid',NULL,NULL)
}
, true)
このプロシージャは、ビュー internet_inc
のフィールド iinc_id
、 specific_field1
、および taxid
の統計を収集します。
そのために、データベースのシステムテーブルに対してのみクエリを実行します。
例 2
CALL GENERATE_SMART_STATS_FOR_FIELDS('SMART_ONLY'
, 'internet_inc'
, {
ROW('iinc_id',NULL,NULL),
ROW('specific_field1',NULL,NULL),
ROW('taxid',NULL,NULL)
}
, false)
前の例と同じ操作を実行しますが、テーブルの行数は収集しません (最後のパラメータの値に注意してください)。
例 3
CALL GENERATE_SMART_STATS_FOR_FIELDS('SMART_ONLY'
, 'internet_inc'
, { ROW('summary',
{ ROW('FIELD_NUM_NULLS'),
ROW('FIELD_COUNT_DISTINCT'),
ROW('FIELD_AVG_LEN') }, NULL)}
, true);
ビューの行数と、 summary
フィールドの「NULL 値」、「個別の値」、および「平均サイズ」の統計を収集します。
SMART_ONLY
パラメータがあるため、データベースのシステムテーブルに対してのみクエリを実行して統計を収集します。
例 4
CALL GENERATE_SMART_STATS_FOR_FIELDS('SMART_ONLY'
, 'internet_inc'
, {
ROW('iinc_id',NULL,NULL),
ROW('specific_field1',NULL,NULL),
ROW('taxid',NULL,NULL)
}
, true
, 'example')
このプロシージャは、データベース example
に属する、ビュー internet_inc
のフィールド iinc_id
、 specific_field1
、および taxid
のすべての統計を収集します。