ビューの統計情報の定義¶
Virtual DataPort のコストベース最適化では、ビューの統計情報と、データソースのインデックスに関する情報を使用して、クエリ実行プラン案のコストを評価し、評価コストがより低いプランを選びます。詳細については、管理ガイドの「 コストベースの最適化 」のセクションを参照してください。
管理ツールを使用してビューの統計情報を収集、格納することをお勧めしますが、 CREATE VIEWSTATSUMMARY
ステートメントにより手作業でそうした統計情報を入力することもできます。
ここでは、基本ビュー および 派生ビューの統計情報を管理するステートメントを示しています。
ビューの統計情報を格納する場合は、 CREATE VIEWSTATSUMMARY
コマンドを使用します。
CREATE [ OR REPLACE ] VIEWSTATSUMMARY <view name:identifier> (
[ SET ENABLED = <boolean> ]
[ SET NUMOFROWS = <number of rows of the view: long> ]
[ SET STATS <statistics table> ]
)
<statistics table> ::=
<statistics header> VALUES <field statistics> [, <field statistics> ]*
<statistics header> ::= ( FIELDNAME, <property name> [, <property name> ]* )
<property name> ::=
AVGSIZE
| MAXVALUE
| MINVALUE
| NUMOFDISTINCTVALUES
| NUMOFNULLVALUES
<field statistics> ::=
( <field name : identifier>, <property value> [, <property value> ]* )
<property value> ::=
NULL
| <value : number>
| <value : literal>
例:
CREATE OR REPLACE VIEWSTATSUMMARY internet_inc (
SET ENABLED = true
SET NUMOFROWS = 4125
SET STATS (fieldname, avgsize, maxvalue, minvalue, numofdistinctvalues, numofnullvalues) VALUES
(iinc_id, 8.0, 4, 1, 4, 0),
(summary, 21.0, 'Install aditional line', 'Bandwidth increase', null, 40),
(ttime, 186.0, null, '2005-06-30T04:19:41+0200', null, 0),
(taxid, 9.0, null, 'B78596011', null, 1238),
(specific_field1, 1.0, '3', '1', 3, 2133),
(specific_field2, 1.0, '3', '1', 3, 998)
);
ENABLED
が true
の場合、「実行エンジン」はこのビューの統計情報を使用してこのクエリの実行コストを評価します。 false
の場合、それらの統計情報は使用されません。
STATS
句は、以下のように、 VALUES
句で提供される各フィールドの統計情報を示します。
AVGSIZE
:text
型のフィールドの場合は、このフィールドの値の平均長を表します。他の型のフィールドの場合は、バイト単位の平均サイズを表します。MAXVALUE
: このフィールドの最大値。MINVALUE
: このフィールドの最小値。NUMOFDISTINCTVALUES
: このフィールドの異なる値の数。NUMOFNULLVALUES
: このフィールドのNULL
値の数。
フィールドの統計情報を提供する必要がないか、提供できない場合は、 NULL
を入力します。たとえば、 blob
値のサイズは提供できない場合があります。
ビューの既存の統計情報を変更するには、 ALTER VIEWSTATSUMMARY
ステートメントを使用します。
ALTER VIEWSTATSUMMARY <view name:identifier> (
[ SET ENABLED = <enabled : boolean> ]
[ SET NUMOFROWS = <num of rows : long> ]
[ SET STATS <statistics table> ]
)
<statistics table> ::= (「 コストベース最適化: CREATE VIEWSTATSUMMARY の構文 」を参照)
以下のコマンドを使用してビューの統計情報を管理します。
LIST VIEWSTATSUMMARIES
: 統計情報が存在するビューのリストを返します。DESC VQL VIEWSTATSUMMARY <view name>
: ビューの統計情報を返します。DROP VIEWSTATSUMMARY <view name>
: ビューの統計情報を削除します。