GENERATE_STATS_FOR_FIELDS¶
注釈
このストアドプロシージャは廃止されており、Denodo Platform の次のメジャーバージョンでは削除される可能性があります。代わりに GET_STATS_FOR_FIELDS プロシージャを使用してください。
非推奨のすべての機能のリストは、「 Denodo Platform 8.0 で非推奨となった機能 」を参照してください。
説明
ストアドプロシージャ GENERATE_STATS_FOR_FIELDS
は、ビューのフィールドの統計 (各フィールドの最小値、最大値など) とビューの行数を収集 および 格納します。このプロシージャは、 GENERATE_STATS と同様に動作しますが、指定したフィールドの統計のみを収集するところが異なります。
可能な場合は、 GENERATE_SMART_STATS_FOR_FIELDS
プロシージャを使用してください。このプロシージャは、通常の SELECT
ステートメントを実行する代わりに、データベースのシステムテーブルに対してクエリを実行してこれらの統計を取得することができます。
構文
GENERATE_STATS_FOR_FIELDS(
viewname : text,
, fields : array
, databasename : text
)
viewname
: このプロシージャは、この名前 (大文字/小文字が同じ) のビューの統計を収集します。fields
: このプロシージャが統計を取得する対象となるフィールド名の配列。ビューの一部のフィールドのみを指定した場合、すでに収集されたビューの他のフィールドの統計は削除されません。null
の場合、このプロシージャはビューのすべてのフィールドの統計を収集します。空の配列 (
{}
) の場合、このプロシージャはビューの行数を収集しますが、フィールドの統計は取得しません。databasename
:viewname
が属するデータベースの名前。null
の場合、プロシージャは現在のデータベースのviewname
を検索します。
必要な権限
このプロシージャを実行できるのは、ビューに対する Write 権限を持っているユーザーのみです。つまり、以下のユーザーはこのプロシージャを実行できます。
管理者またはこのデータベースの管理者。
このデータベースに対する Connect 権限と Write 権限を持っているユーザー。
このデータベースに対する Connect 権限とこのビューに対する Write 権限を持っているユーザー。
例
例 1
SELECT *
FROM GENERATE_STATS_FOR_FIELDS()
WHERE databasename = 'customer360_db'
AND viewname = 'top_customer_by_region'
AND fields = { ROW('region'), ROW('customer_id'), ROW('amount') };
このステートメントは、ビュー top_customer_by_region
のフィールド region
、 customer_id
、および amount
の統計を収集および格納します。
パラメータ fields
は配列であるため、 { ROW(...), ROW(...),...}
構造体を使用してフィールド名の配列を定義する必要があります。この構造体の詳細については、「 複合値を使用した条件 」を参照してください。
例 2
SELECT *
FROM GENERATE_STATS_FOR_FIELDS()
WHERE databasename = 'customer360_db'
AND viewname = 'top_customer_by_region'
AND fields = {}
このステートメントは、ビューの行数を収集および格納しますが、ビューのフィールドの統計は取得しません。以前ビューの統計を取得したが、フィールドの統計に変更がない場合、このステートメントは行数のみを更新します。