非推奨の初期化パラメータ - SQL_TRACE
初期化パラメータSQL_TRACEって非推奨になっていたということを今日知りました。
“ALTER SESSION SET SQL_TRACE”でパラメータの値を操作した後、Oracleを再起動したら以下のエラーメッセージが表示されました。
ORA-32004: obsolete and/or deprecated parameter(s) specified
Oracleのマニュアル「アップグレード・ガイド 10g リリース2(10.2)」によると
Oracle 10.2から非推奨になったみたいです。
さらにSQL_TRACEのリファレンスには以下のように書かれていました。
注意: このパラメータは無視されます。かわりに、DBMS_MONITORおよび DBMS_SESSIONパッケージを使用することをお薦めします。 SQL_TRACEは、下位互換性のためにのみ残されています。
早速、DBMS_MONITORパッケージのDATABASE_TRACE_ENABLEプロシージャを使ってトレースを有効に。
SQL_TRACEの値をV$PARAMETERビューで確認したところ、確かに’FALSE’のままだったんですけど、Oracleを再起動すると上記と同じエラーが表示されてしまいました。
DBMS_MONITOR使っても結局ダメじゃん!と思いつつも、DBMS_MONITORパッケージの存在を知るきっかけになったので、まぁ良しとしましょう。
そもそも”ALTER SESSION SET SQL_TRACE”を使いたかったんですけど、それだと”ALTER SESSION ~”を発行したセッションのトレースしかとれないので、仕方なく”ALTER SESSION SET SQL_TRACE”にしました。
DBMS_MONITORパッケージのSESSION_TRACE_ENABLEプロシージャを使用すれば外からセッションIDを指定してトレースが取れるので、こちらを使えば本来の目的は果たせそうです。
ちなみに、非推奨のパラメータは以下のコマンドで確認できます。
SELECT name FROM v$parameter WHERE isdeprecated = 'TRUE';
参考文献: