ヘッダーをスキップ

Oracle E-Business Suiteメンテナンス・ガイド
リリース12.2
E51768-01
目次へ
目次
前のページへ
前へ
次のページへ
次へ

問合せ最適化統計の管理

Oracle E-Business Suiteおよび問合せ最適化

Oracle E-Business Suiteリリース12では、SQL文に対する最も効率的な実行計画を選択するために、コスト・ベースの最適化を使用します。この方法を使用して、オプティマイザは、SQLでアクセスされるスキーマ・オブジェクトに関する統計に基づいて、使用可能なアクセス・パスのコストを計算し、情報を分析することによって、最適な実行計画を決定します。

Oracle E-Business Suiteでは、最適なパフォーマンスを確保するために、いくつかのデータベース初期化パラメータが正しく設定されている必要があります。My Oracle Supportナレッジ・ドキュメント396009.1を参照し、これに従ってパラメータを構成していることを確認してください。

問合せのオプティマイザによって最適な実行計画が作成されるには、データ・ディクショナリの統計が、表および索引の量とデータ分布を正確に反映している必要があります。このため、データベース統計は、定期的にリフレッシュされる必要があります。ただし、これは、統計を頻繁に収集する必要があるという意味ではありません。まもなく使用が開始されるシステムでは、通常、既存システムのデータ移行時に大量のデータが挿入されます。この場合、大量ロードによってデータ分布が大幅に変更される可能性があるため、統計はかなり頻繁にリフレッシュされる必要があります(たとえば、各主要ロード後)。システムが安定した状態になった後で、スキーマ/データベース・レベルの統計収集の頻度を、毎月1回などに削減する必要があります。ただし、一部の変化しやすい表の統計は、必要に応じた頻度で収集できます。

Oracle E-Business Suiteには、FND_STATSパッケージに、これらの統計の収集を容易にする一連のプロシージャが用意されています。FND_STATSでは、統計の収集にDBMS_STATSパッケージが使用されます。

統計を収集する場合は、次の操作を実行します。

NOWORKLOAD統計モードを使用することをお薦めします。WORKLOAD統計を使用すると、実行計画が不安定になるという問題が発生する場合があります。

FND_STATS.GATHER_SCHEMA_STATSでは、OPTIONSというパラメータが使用されます。このパラメータをGATHER AUTOに設定すると、FND_STATSによってこのオプションが使用され、統計を収集する必要がある表が変更しきいに基づいて自動的に判断されます。「変更しきい」は、modpercentを渡すことによってユーザーが調整できます。modpercentのデフォルトは10です。GATHER AUTOでは、すべての表に対して有効にする必要がある、表モニターと呼ばれる機能が使用されます。特定のスキーマまたはすべてのApplicationsスキーマに対するすべての表でモニターを有効化するために、ENABLE_SCHEMA_MONITORINGというプロシージャが用意されています。

Oracle Database 11g上のOracle E-Business Suiteは、FND_STATSパッケージ内の改善されたDBMS_STATS.AUTO_SAMPLE_SIZE機能をデフォルトで使用し、自動サンプリング統計収集の改善を図ります。

CBO用の統計の収集

Oracle E-Business Suiteには、アプリケーション・データベース・オブジェクトの統計を収集するために、パッケージFND_STATSを使用するコンカレント・プログラムが用意されています。DBMS_STATSの詳細は、オラクル社が提供するPL/SQLパッケージのマニュアルを参照してください。

統計を収集および保守するために、次のコンカレント・プログラムを使用できます。

表統計の収集

「表統計の収集」プログラムでは、指定した表の表統計が収集されます。このプログラムでは、オプションで、新規統計の収集前に、既存の統計をFND_STATTAB表にバックアップできます。backup_flagの値がBACKUPの場合は、FND_STATSによって、新規統計の収集前に、dbms_stats.export_table_statsを使用して旧統計がエクスポートされます。エクスポートされたデータは、FND_STATTAB表に格納されます。backup_flagの値がBACKUP以外の場合、旧表統計は保存されません。このプログラムでは、デフォルトで、表の索引統計も収集されます。このコンカレント・プログラムで使用されるプロシージャの詳細は、「GATHER_TABLE_STATSプロシージャ」を参照してください。

変数 説明
所有者名 表の所有者。
表名 表の名称。
評価率 サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
並列度 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
パーティション名 パーティションの名称。
バックアップ・フラグ バックアップ・フラグは、統計をバックアップするかどうかを示します。このフラグがBACKUPに設定されていると、統計がバックアップされます。
粒度 収集する統計の粒度(パーティション化されている表にのみ関係します)。有効な値は、次のとおりです。次の表に有効な値を示します。
  • DEFAULT: グローバル・レベルおよびパーティション・レベルの統計が収集されます。

  • SUBPARTITION: サブパーティション・レベルの統計が収集されます。

  • PARTITION: パーティション・レベルの統計が収集されます。

  • GLOBAL: グローバル・レベルの統計が収集されます。

  • ALL: すべて(サブパーティション、パーティションおよびグローバル)の統計が収集されます。

履歴モード このパラメータでは、作成される履歴レコードの量が制御されます。有効なモードは、LASTRUN、FULLおよびNONEです。デフォルトはLASTRUNです。それぞれのモードの説明は、「GATHER_TABLE_STATSプロシージャ」を参照してください。
依存カーソルの無効化 このフラグは、分析対象の表に依存するカーソルが無効化されるかどうかを示します。このパラメータは、Oracle 9iリリース2(9.2.x)より前のデータベースを実行している場合は無視されます。

バックアップ表統計

このコンカレント・プログラムでは、特定の表の現行統計がFND_STATTAB表にバックアップされます。このプログラムでは、デフォルトで、関連する索引および列の統計もバックアップされます。

通常STATIDと呼ばれる識別子をバックアップ統計と関連付けることができます。このSTATIDにより、「表統計の復元」コンカレント・プログラムを使用して、特定のバージョンの統計を復元できます。同じオブジェクトの統計を異なるSTATIDでバックアップできます。また、異なるSTATIDを割り当てることによって、同じオブジェクトの様々なバージョンの統計をバックアップすることもできます。

このコンカレント・プログラムで使用されるプロシージャの詳細は、

「BACKUP_TABLE_STATSプロシージャ」を参照してください。

変数 説明
スキーマ名 スキーマの名称。値ALLは、すべてのOracle E-Business Suiteスキーマを表します。
表名 表の名称。
統計ID FND_STATTAB内の統計と関連付けるためのオプションの識別子。デフォルトのSTATIDはBACKUPです。
パーティション名 表パーティションの名称。表がパーティション化されていて、パーティション名がNULLの場合は、グローバル表およびパーティション表の統計がエクスポートされます。

表統計の復元

このコンカレント・プログラムを使用することにより、通常STATIDと呼ばれる特定の統計識別子について、以前にバックアップされた表統計を復元できます。

指定した表に関連付けられているすべての索引および列の統計も復元されます。

このコンカレント・プログラムで使用されるプロシージャの詳細は、

「RESTORE_TABLE_STATSプロシージ」を参照してください。ャ

変数 説明
スキーマ名 スキーマの名称。値ALLは、すべてのOracle E-Business Suiteスキーマを表します。
表名 表の名称。
統計ID FND_STATTAB内の統計と関連付けるためのオプションの識別子。デフォルトのSTATIDはBACKUPです。
パーティション名 表パーティションの名称。表がパーティション化されていて、パーティション名がNULLの場合は、グローバル表およびパーティション表の統計がインポートされます。

スキーマ統計の収集

このコンカレント・プログラムでは、指定したスキーマ・レベルの統計が収集されます。

統計の収集前に、このプログラムでは、バックアップ・フラグの値によって、現行統計のバックアップも作成できます。なんらかの理由で、以前の統計を復元する必要がある場合は、「スキーマ統計の復元」コンカレント・プログラムを使用して復元できます。このバックアップに使用されるSTATIDはNULLです。

このプログラムでは、FND_HISTOGRAM_COLS表にシードされている列のヒストグラムも作成されます。

このコンカレント・プログラムで使用されるプロシージャの詳細は、「GATHER_SCHEMA_STATSプロシージャ」を参照してください。

変数 説明
スキーマ名 統計が収集されるスキーマ。すべてのOracle E-Business Suiteスキーマ(FND_PRODUCT_INSTALLATIONS表にエントリがあるすべてのスキーマ)を対象とする場合は、ALLを指定します。
パーセント サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
並列度 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
バックアップ・フラグ バックアップ・フラグは、統計をバックアップするかどうかを示します。現行統計をFND_STATTAB表にバックアップする場合は、このフラグをBACKUPに設定します。NOBACKUPを使用すると、GATHER_SCHEMA_STATSプロシージャによる現行統計のバックアップは行われません。この方法では、GATHER_SCHEMA_STATSプロシージャの実行速度が上がります。
要求IDの再起動 「スキーマ統計の収集」の実行がなんらかの理由で失敗した場合に、失敗した実行のコンカレントrequest_idを指定すると、コンカレント要求を再発行でき、失敗した実行が中断した箇所が抽出されます。
履歴モード このパラメータでは、作成される履歴レコードの量が制御されます。履歴レコードはFND_STATS_HISTに格納され、問い合せると、特定のオブジェクトの統計の収集時期、およびそのオブジェクトの統計収集に要した時間がわかります。
  • LASTRUN: 各オブジェクトの履歴レコードは、最後の収集統計の実行に関してのみ保守されます。後続の各実行によって、オブジェクトに対する以前の履歴レコードは上書きされます。これがデフォルトの動作です。

  • FULL: このモードでは、履歴情報は上書きされません。履歴レコードは各実行ごとに作成され、要求IDによって識別されます。要求IDが指定されなかった場合は自動的に生成されます。このモードを使用する場合は、「FND_STATS 履歴レコードのパージ」コンカレント・プログラムを定期的に実行して、FND_STATS_HIST表をパージする必要があります。

  • NONE: このモードでは、履歴情報は生成されません。このモードを使用する場合、実行は再開できません。

収集オプション このパラメータでは、統計収集の対象となるオブジェクトの選択方法が指定されます。
  • GATHER: スキーマschemanameのすべての表および索引が統計収集の対象として選択されます。これがデフォルトです。

  • GATHER AUTO: 変更率がmodpercentを超えたスキーマschemanameの表が統計収集の対象として選択されます。これらの表の索引はデフォルトで選択されます。このオプションを使用するには、表モニターが有効化されている必要があります。

  • GATHER EMPTY: 統計は、統計のない表および索引に対してのみ収集されます。

  • LIST AUTO: このオプションでは統計は収集されません。GATHER AUTOオプションを使用する場合に、統計収集の対象として選択されるすべての表のリストが提供されるのみです。

  • LIST EMPTY: このオプションでは統計は収集されません。GATHER EMPTYオプションを使用する場合に、統計収集の対象として選択されるすべての表のリストが提供されるのみです。

変更しきい GATHER AUTOおよびLIST AUTOオプションにのみ適用可能です。このパラメータでは、AUTO統計収集用に抽出されるために、表で行われている必要がある(合計行に関する)変更の率が指定されます。
依存カーソルの無効化 このフラグは、分析対象の表に依存するカーソルが無効化されるかどうかを示します。デフォルトでは、依存カーソルは無効化されています。このパラメータは、Oracle 9iリリース2(9.2.x)より前のデータベースを実行している場合は無視されます。

列統計の収集

このコンカレント・プログラムは、列統計の収集、つまり特定の列のヒストグラムの作成に使用してください。

プロシージャによって、統計収集前にFND_STATTAB表にバックアップが作成されます。

このコンカレント・プログラムで使用されるプロシージャの詳細は、

「GATHER_COLUMN_STATSプロシージャ」を参照してください。

変数 説明
表所有者 表の所有者。
表名 表の名称。
列名 列の名称。
評価率 サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
並列度 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
バケット・サイズ ヒストグラム・バケットの数。
バックアップ・フラグ バックアップ・フラグは、統計をバックアップするかどうかを示します。現行の列統計をFND_STATTAB表にバックアップする場合は、このフラグをBACKUPに設定します。空白のままにすると、NOBACKUPにデフォルト設定されます。

全列統計の収集

このコンカレント・プロシージャは廃止されました。

FND_STATS 履歴レコードのパージ

このプログラムを実行すると、FND_STATS_HIST表から履歴レコードをパージできます。このプログラムは、「履歴モード」がFULLに設定されて統計が収集されている場合は、定期的に実行するようにスケジュールする必要があります。「履歴モード」をNONEまたはデフォルトのLASTRUNに設定して統計を収集している場合は、このプログラムを実行する必要はありません。

変数 説明
パージ・モード DATEまたはREQUESTのいずれかの値を指定できます。選択したモードがDATEの場合、履歴レコードは日付範囲に基づいてパージされます。REQUESTの場合、レコードは要求IDに基づいてパージされます。
値:自 開始日または要求ID。
値:至 終了日または要求ID。

FND_STATSパッケージ

FND_STATSパッケージでは、Oracle E-Business Suiteデータベース・オブジェクトに対する統計を収集するためのプロシージャが提供されます。また、現行の統計を表FND_STATTABにバックアップするプロシージャ、および必要に応じてそれらを復元するためのプロシージャも提供されます。このパッケージでは、ユーザーが並列度も指定できます。指定すると、大規模オブジェクトに対する統計収集の速度が上がります。FND_STATSでは、表FND_STATS_HISTでその処理の履歴も保守できます。この表のデータは、再開機能を提供するために使用されます。また、これを問い合せると、各オブジェクトの統計に要した時間がわかります。

FND_STATSは、実際の統計収集を実行するために、オラクル社が提供するパッケージDBMS_STATSに依存します。DBMS_STATSの詳細は、Oracleデータベースのチューニングおよび提供パッケージのリファレンス・マニュアルを参照してください。

CREATE_STAT_TABLEプロシージャ

このプロシージャでは、統計のバックアップに必要な表が作成されます。

このプロシージャには2つのバージョンがあります。1番目のバージョンは引数を必要とせず、FND製品に対応するスキーマ内にデフォルト名FND_STATTABで表が作成されます。2番目のバージョンでは、統計表に対するスキーマ名、表名および表領域を指定できます。

構文

FND_STATS.CREATE_STAT_TABLE ;
FND_STATS.CREATE_STAT_TABLE (
schemaname  IN  VARCHAR2, 
tabname     IN  VARCHAR2, 
tblspcname  IN  VARCHAR2);

パラメータ

変数 説明
schemaname スキーマの名称。
tabname 表の名称。
tblspcname 統計表を作成する表領域。指定されない場合、表はユーザーのデフォルト表領域に作成されます。

BACKUP_TABLE_STATS

このプロシージャでは、特定の表の統計がFND_STATTAB表にバックアップされます。cascadeをTRUEに設定すると、指定した表と関連付けられているすべての索引および列の統計も格納されます。通常STATIDと呼ばれる識別子をバックアップ統計と関連付けることができます。このSTATIDにより、RESTORE_TABLE_STATSプロシージャを使用して、特定のバージョンの統計を復元できます。

構文

FND_STATS.BACKUP_TABLE_STATS (
schemaname  VARCHAR2, 
tabname     VARCHAR2, 
statid      VARCHAR2 DEFAULT 'BACKUP',
partname    VARCHAR2 DEFAULT NULL, 
cascade     BOOLEAN  DEFAULT TRUE);

パラメータ

変数 説明
schemaname スキーマの名称。
tabname 表の名称。
statid FND_STATTAB内の統計と関連付けるためのオプションの識別子。
partname 表パーティションの名称。表がパーティション化されていて、partnameがNULLの場合は、グローバル表およびパーティション表の統計がエクスポートされます。
cascade TRUEの場合は、この表の列および索引の統計もエクスポートされます。

BACKUP_SCHEMA_STATSプロシージャ

このプロシージャを使用すると、スキーマ全体の統計をバックアップできます。統計はFND_STATTAB表にバックアップされます。異なるstatidを指定すると、異なるバージョンを格納できます。通常STATIDと呼ばれる識別子をバックアップ統計と関連付けることができます。このSTATIDにより、RESTORE_SCHEMA_STATSプロシージャを使用して、特定のバージョンの統計を復元できます。

構文

FND_STATS.BACKUP_SCHEMA_STATS (
schemaname  VARCHAR2, 
statid      VARCHAR2 DEFAULT NULL);

パラメータ

変数 説明
schemaname スキーマの名称。ALLは、すべてのOracle E-Business Suiteスキーマを表します。
statid FND_STATTAB内の統計と関連付けるためのオプションの識別子。

RESTORE_SCHEMA_STATSプロシージャ

このプロシージャでは、以前にFND_STATTAB表にバックアップされた、特定のスキーマに対する統計がディクショナリに復元されます。同じオブジェクトに対する異なる統計のセットを区別するために、statidを指定できます。

構文

FND_STATS.RESTORE_SCHEMA_STATS (
schemaname  VARCHAR2, 
statid VARCHAR2 DEFAULT NULL
);

パラメータ

変数 説明
schemaname スキーマの名称。ALLは、すべてのOracle E-Business Suiteスキーマを表します。
statid FND_STATTAB内の統計と関連付けるためのオプションの識別子。

RESTORE_TABLE_STATSプロシージャ

このプロシージャでは、特定のstatid(オプション)に対する特定の表の統計がFND_STATTAB表から復元され、ディクショナリに戻されます。cascadeをTRUEに設定すると、指定した表と関連付けられているすべての索引および列の統計もインポートされます。

構文

FND_STATS.RESTORE_TABLE_STATS (
ownname  VARCHAR2, 
tabname  VARCHAR2, 
statid   VARCHAR2 DEFAULT NULL,
partname VARCHAR2 DEFAULT NULL,    
cascade  BOOLEAN  DEFAULT TRUE,
);

パラメータ

変数 説明
ownname スキーマの名称。
tabname 表の名称。
statid FND_STATTAB内の統計と関連付けるためのオプションの識別子。
partname 表パーティションの名称。表がパーティション化されていて、partnameがNULLの場合は、グローバル表およびパーティション表の統計がエクスポートされます。
cascade TRUEの場合は、この表の列および索引の統計もエクスポートされます。

RESTORE_COLUMN_STATSプロシージャ

このプロシージャでは、特定のstatid(オプション)に対する特定の列の統計がFND_STATTAB表から復元され、ディクショナリに戻されます。このプロシージャには2つのバージョンがあります。1番目のバージョンでは、表の所有者、表名および列名を指定する必要があります。2番目のバージョンでは、FND_HISTOGRAM_COLS表にシードされているすべての列に対する統計が復元されます。

構文

FND_STATS.RESTORE_COLUMN_STATS (
   ownname  VARCHAR2, 
   tabname  VARCHAR2, 
   colname  VARCHAR2,
   partname VARCHAR2 DEFAULT NULL,    
   statid   VARCHAR2 DEFAULT NULL
   );

FND_STATS.RESTORE_COLUMN_STATS (
   statid   VARCHAR2 DEFAULT NULL
   );

パラメータ

変数 説明
ownname スキーマの名称。
tabname 表の名称。
colname 列の名称。FND_STATTAB内の統計と関連付けるためのオプションの識別子。
partname 表パーティションの名称。表がパーティション化されていて、partnameがNULLの場合は、グローバル表およびパーティション表の統計がエクスポートされます。
statid FND_STATTAB内の統計と関連付けるためのオプションの識別子。

ENABLE_SCHEMA_MONITORINGプロシージャ

このプロシージャは、指定したスキーマのすべての表についてモニター・オプションを有効化するために使用してください。モニター・オプションは、GATHER_SCHEMA_STATSのGATHER AUTOまたはLIST AUTOオプションを使用する前に有効化する必要があります。schemaname引数の値がALLの場合、モニター・オプションは、Oracle E-Business Suiteに登録されているすべてのスキーマに属するすべての表に対して有効化されます。

構文

FND_STATS.ENABLE_SCHEMA_MONITORING (
    schemaname	 VARCHAR2 DEFAULT ‘ALL’);

パラメータ

変数 説明
schemaname モニターを有効化するスキーマの名称。

DISABLE_SCHEMA_MONITORINGプロシージャ

このプロシージャは、指定したスキーマのすべての表についてモニター・オプションを無効化するために使用してください。schemaname引数の値がALLの場合、モニター・オプションは、Oracle E-Business Suiteに登録されているすべてのスキーマに属するすべての表に対して無効化されます。

構文

FND_STATS.DISABLE_SCHEMA_MONITORING (
    schemaname	 VARCHAR2 DEFAULT ‘ALL’);

パラメータ

変数 説明
schemaname モニターを無効化するスキーマの名称。

GATHER_SCHEMA_STATSプロシージャ

このプロシージャでは、スキーマ内のすべてのオブジェクトに対する統計が収集されます。統計は、DEFAULTの粒度で収集されます。このプロシージャは、コンカレント・プログラム「スキーマ統計の収集」を介して使用することもできます。このプロシージャが操作中に失敗した場合、失敗した要求の要求IDを指定すると再開できます。要求IDは、プログラムの開始時にコンカレント・マネージャから取得するか、またはFND_STATS_HIST表から問い合せることができます。

GATHER_SCHEMA_STATSは、OUTパラメータがあるため、SQL*Plusで直接実行できません。sqlplusプロンプトからスキーマ統計を収集するために、プロシージャGATHER_SCHEMA_STATISTICSが提供されています。

構文

FND_STATS.GATHER_SCHEMA_STATS (
    schemaname        VARCHAR2,
    estimate_percent  NUMBER DEFAULT NULL,
    degree            NUMBER DEFAULT NULL,
    internal_flag     NUMBER DEFAULT NULL,
    Errors 	OUT Error_Out,
    request_id   NUMBER default null,
    hmode        VARCHAR2 default 'LASTRUN',
    options in   VARCHAR2 default 'GATHER',
    modpercent   NUMBER default 10,
    invalidate   VARCHAR2 default 'Y'
);

FND_STATS.GATHER_SCHEMA_STATISTICS (
    schemaname        VARCHAR2,
    estimate_percent  NUMBER DEFAULT NULL,
    degree            NUMBER DEFAULT NULL,
    internal_flag     NUMBER DEFAULT NULL,
    request_id        NUMBER DEFAULT NULL,
    hmode             VARCHAR2 DEFAULT 'LASTRUN',
    options in        VARCHAR2 DEFAULT 'GATHER',
    modpercent        NUMBER DEFAULT 10,
    invalidate        VARCHAR2 DEFAULT 'Y'
);

パラメータ

変数 説明
schemaname 分析するスキーマ。ALLは、すべてのOracle E-Business Suiteスキーマを表します。
estimate_percent サンプリング率。値が指定されない場合は、デフォルト値の10が使用されます。有効な範囲は0〜100です。
degree 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
internal_flag バックアップ・フラグは、統計をバックアップするかどうかを示します。現行統計をFND_STATTAB表にバックアップする場合は、このフラグをBACKUPに設定します。NOBACKUPを使用すると、GATHER_SCHEMA_STATSプロシージャによる現行統計のバックアップは行われません。この方法では、GATHER_SCHEMA_STATSプロシージャの実行速度が上がります。
errors エラー・メッセージを格納するためのユーザー定義のタイプ。
Request_id request_idを指定すると、特定の統計収集実行に対する履歴レコードを識別できます。このパラメータは、再開機能を提供するためにも使用されます。統計収集がなんらかの理由で失敗した場合に、失敗した実行のrequest_idを指定すると、失敗した実行が中断した箇所をその次の実行で抽出できます。
Hmode このパラメータでは、作成される履歴レコードの量が制御されます。履歴レコードはFND_STATS_HISTに格納され、問い合せると、特定のオブジェクトの統計の収集時期、およびそのオブジェクトの統計収集に要した時間がわかります。
LASTRUN: 各スキーマの履歴レコードは、最後の収集統計の実行に関してのみ保守されます。後続の各実行によって、オブジェクトに対する以前の履歴レコードは上書きされます。これがデフォルトの動作です。
FULL: このモードでは、履歴情報は上書きされません。履歴レコードは各実行ごとに作成され、要求IDによって識別されます。要求IDが指定されなかった場合は自動的に生成されます。このモードを使用する場合は、「FND_STATS 履歴レコードのパージ」コンカレント・プログラムを定期的に実行して、FND_STATS_HIST表をパージする必要があります。
NONE: このモードでは、履歴情報は生成されません。このモードを使用する場合、実行は再開できません。
Options このパラメータでは、統計収集の対象となるオブジェクトの選択方法が指定されます。
GATHER - スキーマ<スキーマ名>のすべての表および索引が統計収集の対象として選択されます。これがデフォルトです。
GATHER AUTO - 変更率がmodpercentを超えたスキーマschemanameの表が統計収集の対象として選択されます。これらの表の索引はデフォルトで選択されます。このオプションを使用するには、表モニターが有効化されている必要があります。
GATHER EMPTY - 統計は、統計のない表および索引に対してのみ収集されます。
LIST AUTO - このオプションでは統計は収集されません。GATHER AUTOオプションを使用する場合に、統計収集の対象として選択されるすべての表のリストが提供されるのみです。
LIST EMPTY - このオプションでは統計は収集されません。GATHER EMPTYオプションを使用する場合に、統計収集の対象として選択されるすべての表のリストが提供されるのみです。
Modpercent GATHER AUTOおよびLIST AUTOオプションにのみ適用可能です。このパラメータでは、AUTO統計収集用に抽出されるために、表で行われている必要がある(合計行に関する)変更の率が指定されます。
Invalidate このフラグは、分析対象の表に依存するカーソルが無効化されるかどうかを示します。デフォルトでは、依存カーソルは無効化されています。このパラメータは、Oracle 9iリリース2(9.2.x)より前のデータベースを実行している場合は無視されます。

例外

ORA-20000: Schema does not exist or insufficient privileges. 
ORA-20001: Bad input value. 

GATHER_INDEX_STATSプロシージャ

このプロシージャでは、指定した索引に対する統計が収集されます。

構文

FND_STATS.GATHER_INDEX_STATS (
    ownname 		VARCHAR2,
    indname 		VARCHAR2,
    percent 		NUMBER DEFAULT NULL,
    partname 		VARCHAR2 DEFAULT NULL,
    backup_flag 	VARCHAR2 DEFAULT NULL,
    hmode 		   VARCHAR2 DEFAULT 'LASTRUN',
    invalidate   VARCHAR2 DEFAULT 'Y'

);

パラメータ

変数 説明
ownname 分析する索引のスキーマ。
indname 索引の名称。
percent サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
partname パーティション名。
backup_flag バックアップ・フラグは、統計をバックアップするかどうかを示します。現行の列統計をFND_STATTAB表にバックアップする場合は、このフラグをBACKUPに設定します。空白のままにすると、NOBACKUPにデフォルト設定されます。
Hmode このパラメータでは、作成される履歴レコードの量が制御されます。
LASTRUN: 各索引の履歴レコードは、最後の収集統計の実行に関してのみ保守されます。後続の各実行によって、オブジェクトに対する以前の履歴レコードは上書きされます。これがデフォルトの動作です。
FULL: このモードでは、履歴情報は上書きされません。履歴レコードは各実行ごとに作成され、要求IDによって識別されます。要求IDが指定されなかった場合は自動的に生成されます。このモードを使用する場合は、「FND_STATS 履歴レコードのパージ」コンカレント・プログラムを定期的に実行して、FND_STATS_HIST表をパージする必要があります。
NONE: このモードでは、履歴情報は生成されません。このモードを使用する場合、実行は再開できません。
Invalidate このフラグは、分析対象の索引に依存するカーソルが無効化されるかどうかを示します。デフォルトでは、依存カーソルは無効化されています。

GATHER_TABLE_STATSプロシージャ

このプロシージャでは、表、列および索引の統計が収集されます。可能なかぎり多くの作業を並列化しようとします。分析対象の表に対する選択権限がユーザーにない場合、この操作は並列化されません。

構文

FND_STATS.GATHER_TABLE_STATS (
    ownname 		VARCHAR2,
    tabname 		VARCHAR2,
    percent 		NUMBER DEFAULT NULL,
    degree 		NUMBER DEFAULT NULL,
    partname 		VARCHAR2 DEFAULT NULL,
    backup_flag 	VARCHAR2 DEFAULT NULL,
    cascade 		BOOLEAN DEFAULT TRUE,
    granularity VARCHAR2 DEFAULT ‘DEFAULT’,
    hmode 		VARCHAR2 DEFAULT 'LASTRUN',
    invalidate VARCHAR2 DEFAULT 'Y'
);

パラメータ

変数 説明
ownname 表の所有者。
tabname 表の名称。
percent サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
degree 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
partname パーティションの名称。
backup_flag バックアップ・フラグは、統計をバックアップするかどうかを示します。現行の表統計をFND_STATTAB表にバックアップする場合は、このフラグをBACKUPに設定します。空白のままにすると、NOBACKUPにデフォルト設定されます。
cascade TRUEに設定すると、指定した表の統計収集に加え、索引統計も収集されます。索引統計収集は並列化されません。このオプションの使用は、各表の索引についてGATHER_INDEX_STATSプロシージャを実行した場合と同じです。
granularity 収集する統計の粒度(パーティション化されている表にのみ関係します)。有効な値は、次のとおりです。有効な値は、次のとおりです。
DEFAULT: グローバル・レベルおよびパーティション・レベルの統計が収集されます。
SUBPARTITION: サブパーティション・レベルの統計が収集されます。
PARTITION: パーティション・レベルの統計が収集されます。
GLOBAL: グローバル・レベルの統計が収集されます。
ALL: すべて(サブパーティション、パーティションおよびグローバル)の統計が収集されます。
Hmode このパラメータでは、作成される履歴レコードの量が制御されます。
LASTRUN: 各索引の履歴レコードは、最後の収集統計の実行に関してのみ保守されます。後続の各実行によって、オブジェクトに対する以前の履歴レコードは上書きされます。これがデフォルトの動作です。
FULL: このモードでは、履歴情報は上書きされません。履歴レコードは各実行ごとに作成され、要求IDによって識別されます。要求IDが指定されなかった場合は自動的に生成されます。このモードを使用する場合は、「FND_STATS 履歴レコードのパージ」コンカレント・プログラムを定期的に実行して、FND_STATS_HIST表をパージする必要があります。
NONE: このモードでは、履歴情報は生成されません。このモードを使用する場合、実行は再開できません。
Invalidate このフラグは、分析対象の索引に依存するカーソルが無効化されるかどうかを示します。デフォルトでは、依存カーソルは無効化されています。

GATHER_COLUMN_STATSプロシージャ

このプロシージャは、列統計の収集、つまり特定の列のヒストグラムの作成に使用してください。

このプロシージャには2つのバージョンがあります。1番目のバージョンでは、特定のappl_idに対するFND_HISTOGRAM_COLSにシードされているすべての列に対する統計が収集されます。NULLの場合は、すべてのシード済ヒストグラムが作成されます。2番目のバージョンでは、指定した列の列統計が収集されます。

構文

FND_STATS.GATHER_COLUMN_STATS (
    appl_id     NUMBER DEFAULT NULL,
    percent 	  NUMBER DEFAULT NULL,
    degree      NUMBER DEFAULT NULL,
    backup_flag VARCHAR2 DEFAULT NULL,
    Errors      OUT Error_Out,
    hmode       VARCHAR2 DEFAULT 'LASTRUN',
    invalidate  VARCHAR2 DEFAULT 'Y'
);

FND_STATS.GATHER_COLUMN_STATS (
    ownname      VARCHAR2,
    tabname      VARCHAR2,
    colname      VARCHAR2,
    percent      NUMBER DEFAULT NULL,
    degree       NUMBER DEFAULT NULL,
    hsize        NUMBER DEFAULT 254,
    backup_flag  VARCHAR2 DEFAULT NULL,
    partname     VARCHAR2 DEFAULT NULL,
    hmode        VARCHAR2 DEFAULT 'LASTRUN',
    invalidate   VARCHAR2 DEFAULT 'Y'
);

パラメータ

変数 説明
appl_id アプリケーションID。
ownname 表の所有者。
colname 列名。
tabname 表名。
partname パーティションの名称。
percent サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
degree 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
hsize ヒストグラムのバケット数。
backup_flag バックアップ・フラグは、統計をバックアップするかどうかを示します。現行の列統計をFND_STATTAB表にバックアップする場合は、このフラグをBACKUPに設定します。空白のままにすると、NOBACKUPにデフォルト設定されます。
errors エラー・メッセージを格納するためのユーザー定義のタイプ。
hmode このパラメータでは、作成される履歴レコードの量が制御されます。
LASTRUN: 各索引の履歴レコードは、最後の収集統計の実行に関してのみ保守されます。後続の各実行によって、オブジェクトに対する以前の履歴レコードは上書きされます。これがデフォルトの動作です。
FULL: このモードでは、履歴情報は上書きされません。履歴レコードは各実行ごとに作成され、要求IDによって識別されます。要求IDが指定されなかった場合は自動的に生成されます。このモードを使用する場合は、「FND_STATS 履歴レコードのパージ」コンカレント・プログラムを定期的に実行して、FND_STATS_HIST表をパージする必要があります。
NONE: このモードでは、履歴情報は生成されません。このモードを使用する場合、実行は再開できません。
Invalidate このフラグは、分析対象の索引に依存するカーソルが無効化されるかどうかを示します。デフォルトでは、依存カーソルは無効化されています。

GATHER_ALL_COLUMN_STATSプロシージャ

このプロシージャでは、指定したスキーマに属する列の統計が収集されます。つまり、FND_HISTOGRAM_COLSにシードされているすべての列に対するヒストグラムが作成されます。

構文

FND_STATS.GATHER_ALL_COLUMN_STATS (
    ownname    VARCHAR2 ,
    percent    NUMBER DEFAULT NULL,
    degree     NUMBER DEFAULT NULL,
    hmode      VARCHAR2 DEFAULT 'LASTRUN',
    invalidate VARCHAR2 DEFAULT 'Y'

);

パラメータ

変数 説明
ownname シード済ヒストグラムが作成されるスキーマ。ALLは、すべてのApplicationsスキーマを表します。
percent サンプリング率。空白のままにすると、デフォルト値の10が使用されます。有効な範囲は0〜100です。
degree 統計の収集に使用される並列度。指定されない場合は、parallel_max_serversとcpu_countの小さい方の値にデフォルト設定されます。
Hmode このパラメータでは、作成される履歴レコードの量が制御されます。
LASTRUN: 各索引の履歴レコードは、最後の収集統計の実行に関してのみ保守されます。後続の各実行によって、オブジェクトに対する以前の履歴レコードは上書きされます。これがデフォルトの動作です。
FULL: このモードでは、履歴情報は上書きされません。履歴レコードは各実行ごとに作成され、要求IDによって識別されます。要求IDが指定されなかった場合は自動的に生成されます。このモードを使用する場合は、「FND_STATS 履歴レコードのパージ」コンカレント・プログラムを定期的に実行して、FND_STATS_HIST表をパージする必要があります。
NONE: このモードでは、履歴情報は生成されません。このモードを使用する場合、実行は再開できません。
Invalidate このフラグは、分析対象の索引に依存するカーソルが無効化されるかどうかを示します。デフォルトでは、依存カーソルは無効化されています。

ANALYZE_ALL_COLUMNSプロシージャ

このプロシージャは廃止されました。

LOAD_XCLUD_STATSプロシージャ

このプロシージャは廃止されました。

PURGE_STAT_HISTORYプロシージャ

このプロシージャは、不要な履歴レコードをfnd_stats_hist表からパージするために使用してください。このプロシージャには2つのバージョンがあります。1番目のバージョンでは、要求IDの範囲が取得され、その範囲内のすべての履歴レコードが削除されます。2番目のバージョンでは、引数として日付の範囲が取得され、その範囲内のすべての履歴レコードが削除されます。削除は、自律型取引として実行されます。

構文

FND_STATS.PURGE_STAT_HIST (
    From_req_id	 NUMBER,
    To_req_id 	 NUMBER);

FND_STATS. PURGE_STAT_HIST(
    Purge_from_date 	 VARCHAR2,
    Purge_to_date 	 VARCHAR2);

パラメータ

変数 説明
from_req_id 開始要求ID。
to_req_id 終了要求ID。
purge_from_date 開始パージ日付。
purge_to_date 終了パージ日付。

CHECK_HISTOGRAM_COLSプロシージャ

このプロシージャでは、カンマ区切り表の特定のリストについて、これらの表の一意でないすべての索引の重要なすべての列にあるデータがチェックされ、これらの列に対するヒストグラムを作成する必要があるかどうかが判断されます。このプロシージャのアルゴリズムは、次のとおりです。

select 
decode(floor(sum(tot)/(max(cnt)*FACTOR)),0,'YES','NO') HIST
from (select count(col) cnt , count(*) tot
from tab sample (PERCENT)
where col is not null
group by col);

decode文によって、単一の値がサンプル率の1/FACTOR以上を占めるかどうかが判別されます。

sum(cnt)が非常に小さい場合(NULL以外の小さいサンプルの場合)、結果が不正確になる可能性があります。count(*)は3000以上に設定することをお薦めします。プロシージャは、サーバー出力の設定後にSQLプロンプトから実行されます。

構文

FND_STATS.CHECK_HISTOGRAM_COLS (
	tablelist	VARCHAR2,
	factor		NUMBER DEFAULT 75,
	percent		NUMBER DEFAULT 10,
	degree		NUMBER DEFAULT NULL);

パラメータ

変数 説明
tablelist 表のカンマ区切りのリスト。schema.tablenameの形式であることが必要です。tablenameにワイルドカードも使用できます。たとえば、tablelist=>'oe.so%head% , pa.pa_exp% , ar.ra_customers'と指定できます。所有者の部分は必須です。
factor ヒストグラムを計算するための係数。
percent サンプル率。
degree 並列度。

VERIFY_STATSプロシージャ

このプロシージャでは、カンマ区切りの表の特定のリストまたは特定のスキーマ名について、表、索引およびヒストグラムに対するデータ・ディクショナリ表内の統計をレポートします。

構文

FND_STATS.VERIFY_STATS (
	schemaname    VARCHAR2 DEFAULT NULL,
	tablelist     VARCHAR2 DEFAULT NULL,
	days_old      NUMBER DEFAULT NULL,
	column_stat   BOOLEAN DEFAULT FALSE);

パラメータ

変数 説明
schemaname スキーマの名称。schemanameがNULL(デフォルト)の場合は、表の特定のリストについてレポートされます。
tablelist 表のカンマ区切りのリスト。tablenameが<schema>.<tablename>の形式でない場合、スキーマは、schemanameパラメータの値です。tablelistがNULL(デフォルト)の場合は、指定したschemanameに対するすべての表についてレポートされます。
days_old プロシージャによって、統計がdays_old日数より前の表のみがレポートされます。デフォルトはNULLで、この場合はすべての表についてレポートされます。
column_stat TRUEの場合、export_table_stats表に対する列統計がレポートされます。デフォルトはFALSEです。