9.1 OPG_APIS.ANALYZE_PG

形式

OPG_APIS.ANALYZE_PG(
     graph_name       IN VARCHAR2,
     estimate_percent IN NUMBER,
     method_opt       IN VARCHAR2,
     degree           IN NUMBER,
     cascade          IN BOOLEAN,
     no_invalidate    IN BOOLEAN,
     force            IN BOOLEAN DEFAULT FALSE,
     options          IN VARCHAR2 DEFAULT NULL);

説明

指定したプロパティ・グラフに対し、VT$、GE$、IT$およびGT$表の統計を収集します。

パラメータ

graph_name

プロパティ・グラフの名前。

estimate_percent

スキーマ表の推定する行のパーセント(NULLは計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用すると、有効な統計を生成するための適切なサンプル・サイズをOracleデータベースで決定できるようになります。これが通常のデフォルトです。

mrthod_opt

内部プロパティ・グラフ・スキーマ表に対し、次のオプションのいずれかまたは両方の組み合わせを受け入れます。

  • FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}として定義されます。

  • integer: ヒストグラム・バケット数。範囲は[1,254]である必要があります。

  • REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。

  • AUTO: 列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が判断されます。

  • SKEWONLY: 列のデータ配分に基づいて、ヒストグラムを収集する列が判断されます。

columnは、column := column_name | (extension)として定義されます。

  • column_name: 列の名前

  • extension(column_name, colume_name [, ...])の書式の列グループまたは式。

通常のデフォルトは、FOR ALL COLUMNS SIZE AUTOです

degree

プロパティ・グラフ・スキーマ表の並列度。通常、degreeのデフォルト値はNULLで、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づくデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。AUTO_DEGREE値を指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。

cascade

プロパティ・グラフ・スキーマ表の索引の統計を収集します。索引の統計情報を収集するかどうかをOracle Databaseが決定できるようにするには、定数DBMS_STATS.AUTO_CASCADEを使用します。これが通常のデフォルトです。

no_invalidate

TRUEの場合、依存カーソルが無効化されることはありません。FALSEの場合、依存カーソルがすぐに無効化されます。DBMS_STATS.AUTO_INVALIDATE(通常のデフォルト)が有効な場合、Oracle Databaseによって依存カーソルを無効化するタイミングが決定されます。

force

TRUEの場合、1つ以上の基礎になる表がロックされていても操作が行われます。

options

(将来使用するために予約済)

使用上のノート

プロパティ・グラフの所有者だけがこのプロシージャをコールできます。

次の例では、プロパティ・グラフmypgの統計が収集されます。

EXECUTE OPG_APIS.ANALYZE_PG('mypg', estimate_percent=> 0.001, method_opt=>'FOR ALL COLUMNS SIZE AUTO', degree=>4, cascade=>true, no_invalidate=>false, force=>true, options=>NULL);