0

パーティションの分析には何時間もかかりました。テーブルのパーティションを並行して分析するコマンドはありますか?

4

1 に答える 1

1

を使用DBMS_STATSして統計を収集している場合は、いくつかのオプションがあります。を明示的に呼び出しているDBMS_STATS.GATHER_TABLE_STATS場合DBMS_STATS.GATHER_INDEX_STATS、パラメーターを使用してdegree並列度を設定できます。また、DBMS_STATSのさまざまなSET_*_PREFSルーチンを使用してデフォルトを設定し、オブジェクト タイプ別またはデータベース全体に対してデフォルトの並列度を設定することもできます ( SET_DATABASE_PREFS)。例えば

DBMS_STATS.SET_DATABASE_PREFS('DEGREE', '10');

DBMS_STATS.GATHER_TABLE_STATS への後続のコールで、次数のデフォルトの 10 が設定されます。または、次のように GATHER_TABLE_STATS に次数パラメーターを使用することもできます。

DBMS_STATS.GATHER_TABLE_STATS(ownname => 'A_SCHEMA',
                              tabname => 'A_TABLE',
                              degree  => 10);

テーブルの分析に使用ANALYZEしている場合は、おそらく DBMS_STATS に変更する必要があります。私の記憶が正しければ、Oracle 9 以降、ANALYZE は廃止されているからです。パッケージには多くのDBMS_STATSパラメータを持つ多くのルーチンがありますが、ほとんどのパラメータには適切なデフォルトがあるため、指定する必要はありません。

この質問をdba.stackexchange.comに再投稿してみてください。

共有してお楽しみください。

于 2012-06-15T10:52:44.377 に答える