資料の 英語版 に戻る

他のすべてのデータ・ソースの統計の収集

最終更新: 2024年11月26日
Data Virtualizationにおける他のすべてのデータソースの統計情報の収集

DVSYS.COLLECT_STATISTICS プロシージャーは、オブジェクト・ストレージに定義されているオブジェクトを除く、すべての仮想化オブジェクトの統計を収集します。

以下の例は、DVSYS.COLLECT_STATISTICS プロシージャーのremote-catalog収集タイプを使用して統計を収集する方法を示しています。
call DVSYS.COLLECT_STATISTICS('schema''table_name', 'list_of_columns_commonly_used_in_predicates', 1, null, ?);

この呼び出しは、list_of_columns_commonly_used_in_predicates 引数に含まれる列の表レベルの統計と列レベルの統計を収集します。 表に列が少ない場合は、列リストの代わりに NULL 値を指定することによって、表内のすべての列の統計を収集できます。 列統計を収集しないようにするには、代わりに空ストリング ('') を指定します。

remote-catalogコレクション・タイプはすべてのデータ・ソースでサポートされているわけではなく、「remote-catalogコレクション・タイプをサポートする一部のデータ・ソースは、Data Virtualizationで使用されるすべての主要統計をサポートしていません。 いずれの場合も、remote-queryタイプの統計収集を使用することが必要な場合があります。 以下の例は前の例と似ていますが、代わりにremote-queryコレクション・タイプを使用します。

call DVSYS.COLLECT_STATISTICS('schema''table_name', 'list_of_columns_commonly_used_in_predicates', 2, null, ?);
このタイプの統計収集は、リソースを大量に消費する可能性があり、完了までに時間がかかることがあります。 仮想表に多数の行がある場合、または多数の列について統計が収集される場合は、システムの負荷が低いときに統計を収集することを検討してください。 表に 1000 行を超える行がある場合は、サンプリング (TABLESAMPLE オプションを指定) を使用して、統計収集で使用されるリソースを削減し、パフォーマンスを向上させることができます。 以下の例では、25% のデータ・サンプリング・レートを使用しています。
call DVSYS.COLLECT_STATISTICS('schema''table_name''list_of_columns_commonly_used_in_predicates', 2'TABLESAMPLE=25', ?);
多数の統計収集ジョブを同時にスケジュールすることは避けてください。