自動メンテナンスタスクの無効化

この記事では自動メンテナンスタスクの無効化について解説します。

 自動メンテナンスタスクの無効化

自動メンテナンスタスクではSQLチューニングアドバイザ、自動オプティマイザ統計収集、自動セグメントアドバイザの3種類が自動で実行されます。

これらはデフォルトではすべて有効となっているため、動作させたくない場合は無効化する必要があります。

アドバイザは不要であったり、統計情報を更新したくない場合などに無効化を実施します。

自動メンテナンスタスクの無効化にはDBMS_AUTO_TASK_ADMINパッケージを使用します。

BEGIN
  dbms_auto_task_admin.disable(
    client_name => '<自動メンテナンスタスク名>',
    operation   => NULL,
    window_name => NULL);
END;
/

反対にメンテナンスタスクを有効化したい場合はdisableをenableに変更します。


 無効化手順

まずは自動メンテナンスタスクが有効か無効かを確認します。

SQL> select client_name, status from dba_autotask_client;
CLIENT_NAME							 STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection 				 ENABLED
auto space advisor						 ENABLED
sql tuning advisor						 ENABLED

STATUSがENABLEになっているので、すべて有効化された状態です。

DBMS_AUTO_TASK_ADMINパッケージを使用してSQLチューニングアドバイザを無効化します。

SQL> BEGIN
  dbms_auto_task_admin.disable(     client_name => 'sql tuning advisor',     operation   => NULL,     window_name => NULL); END; /  PL/SQL procedure successfully completed.

SQLチューニングアドバイザが無効化されたか確認します。

SQL> select client_name, status from dba_autotask_client;
CLIENT_NAME							 STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection 				 ENABLED
auto space advisor						 ENABLED
sql tuning advisor						 DISABLED

STATUSがDISABLEになり、無効化されていることが確認できました。