パーティションの分析には何時間もかかりました。テーブルのパーティションを並行して分析するコマンドはありますか?
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に再投稿してみてください。
共有してお楽しみください。