ビューの統計情報の定義

Virtual DataPort のコストベース最適化では、ビューの統計情報と、データソースのインデックスに関する情報を使用して、クエリ実行プラン案のコストを評価し、評価コストがより低いプランを選びます。詳細については、管理ガイドの「 コストベースの最適化 」のセクションを参照してください。

管理ツールを使用してビューの統計情報を収集、格納することをお勧めしますが、 CREATE VIEWSTATSUMMARY ステートメントにより手作業でそうした統計情報を入力することもできます。

ここでは、基本ビュー および 派生ビューの統計情報を管理するステートメントを示しています。

ビューの統計情報を格納する場合は、 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 VIEWSTATSUMMARY の例
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)
);

ENABLEDtrue の場合、「実行エンジン」はこのビューの統計情報を使用してこのクエリの実行コストを評価します。 false の場合、それらの統計情報は使用されません。

STATS 句は、以下のように、 VALUES 句で提供される各フィールドの統計情報を示します。

  • AVGSIZE: text 型のフィールドの場合は、このフィールドの値の平均長を表します。他の型のフィールドの場合は、バイト単位の平均サイズを表します。

  • MAXVALUE: このフィールドの最大値。

  • MINVALUE: このフィールドの最小値。

  • NUMOFDISTINCTVALUES: このフィールドの異なる値の数。

  • NUMOFNULLVALUES: このフィールドの NULL 値の数。

フィールドの統計情報を提供する必要がないか、提供できない場合は、 NULL を入力します。たとえば、 blob 値のサイズは提供できない場合があります。

ビューの既存の統計情報を変更するには、 ALTER VIEWSTATSUMMARY ステートメントを使用します。

コストベース最適化: 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>: ビューの統計情報を削除します。