Saturday, July 18, 2009

他のセッションを盗み見しよう。

他のセッションによって変更されたパラメータや診断イベントを盗み見する必要が時々あります。

でも、オラクルは公式的な方法を提供していません。すなわち、動的性能ビューからその値を得ることができません。しかし、私たちには万能のツールがあります-oradebug!

セッション#1が次のようにパラメータとイベントを設定します。

-- session #1
alter session set "_optim_peek_user_binds" = false;
alter session set sql_trace = true;

alter session set events '10046 trace name context forever, level 1';
alter session set events '10053 trace name context forever, level 1';


レベル3のErrorstackは変更されたパラメータとイベントを出力します。

-- session #2
connect /as sysdba
oradebug setospid 9768
oradebug dump errorstack 3

トレースファイルは次のようなセクションを含んでいます。

...
Dump event group for SESSION
10053 trace name CONTEXT level 1, forever
10046 trace name CONTEXT level 1, forever
Dump event group for SYSTEM
DYNAMICALLY MODIFIED PARAMETERS:
sql_trace = TRUE
_optim_peek_user_binds = FALSE
_rowsource_execution_statistics= FALSE
...

または、変更されたパラメータだけが必要なら、次のようなコマンドを実行します。

oradebug dump modified_parameters 1

簡単ながらも有効な方法でしょう。

No comments:

Post a Comment