最近、11.1.0.7から11.2.0.2にアップグレードしました。アップグレードの直後に、REDO生成の急増に気づきました。また、DBMS_TABCOMP_TEMP_UNCMPやDBMS_TABCOMP_TEMP_CMPなどの名前のテーブルにも気づきました。それらのテーブルは私の本番スキーマで何をしていて、どのようにしてそこに到達したのですか?掘り下げてみると、これらは新しい11gR2圧縮アドバイザーによって作成されていることがわかりました。夜間のメンテナンス期間中に、スケジュールされたジョブがテーブルを調べ、データのサブセットを取得して、非圧縮テーブル(UNCMP)にロードします。次に、データ(CMP)を圧縮し、実際のデータに基づいて圧縮率を決定します。圧縮率が特定のしきい値を超えている場合、アドバイザーは圧縮用のテーブルを推奨します。圧縮アドバイザが完了すると、テーブルが削除されます。
問題は、CompressionAdvisorが大量のやり直しを生成することです。これは未公開のバグ8896202として指摘されています。興味がある場合は、MetalinkNote1284972.1で詳細を確認できます。
圧縮アドバイザーを使用しないので、夜間のジョブをオフにします。残念ながら、このジョブはSpace Advisorの一部であり、CompressionAdvisorを単独でオフにすることはできません。やり直しの生成率が高すぎるだけで、Space Advisorがなくても生きていけると思うので、次のようにします。
SQL> exec dbms_auto_task_admin.disable(client_name=>'auto space advisor',operation=>null,window_name=>null);
PL/SQL procedure successfully completed.
圧縮アドバイザをスペースアドバイザから切り離すための拡張リクエストが提出されたようです。