ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

60 DBMS_MONITOR

DBMS_MONITORは、PL/SQLを使用して統計情報収集とSQLトレースを制御するためのパッケージです。

この章では、次の項目について説明します。


DBMS_MONITORサブプログラムの要約

表60-1 DBMS_MONITORパッケージのサブプログラム

サブプログラム 説明

CLIENT_ID_STAT_DISABLEプロシージャ


指定されたクライアント識別子に対して以前に有効にされた統計情報収集を無効にします。

CLIENT_ID_STAT_ENABLEプロシージャ


指定されたクライアント識別子に対する統計情報収集を有効にします。

CLIENT_ID_TRACE_DISABLEプロシージャ


指定されたクライアント識別子に対して以前に有効にされたSQLトレースをデータベース全体で無効にします。

CLIENT_ID_TRACE_ENABLEプロシージャ


指定されたクライアント識別子に対するSQLトレースをデータベース全体で有効にします。

DATABASE_TRACE_DISABLEプロシージャ


データベース全体または特定のインスタンスに対するSQLトレースを無効にします。

DATABASE_TRACE_ENABLEプロシージャ


データベース全体または特定のインスタンスに対するSQLトレースを有効にします。

SERV_MOD_ACT_STAT_DISABLEプロシージャ


サービス名、モジュール名およびアクション名の指定された組合せに対して有効にされた統計情報収集を無効にします。

SERV_MOD_ACT_STAT_ENABLEプロシージャ


サービス名、モジュール名およびアクション名の指定された組合せに対する統計情報収集を有効にします。

SERV_MOD_ACT_TRACE_DISABLEプロシージャ


サービス名、モジュール名およびアクション名の指定された組合せに対して有効にされたSQLトレースをデータベース全体で無効にするか、特定のインスタンスに限定して無効にします。

SERV_MOD_ACT_TRACE_ENABLEプロシージャ


instance_nameが指定されていないかぎり、サービス名、モジュール名およびアクション名の指定された組合せに対するSQLトレースをデータベース全体で有効にします。

SESSION_TRACE_DISABLEプロシージャ


指定されたデータベース・セッション識別子(SID)に対して以前に有効にされたSQLトレースをローカル・インスタンス上で無効にします。

SESSION_TRACE_ENABLEプロシージャ


指定されたデータベース・セッション識別子(SID)に対するSQLトレースをローカル・インスタンス上で有効にします。



CLIENT_ID_STAT_DISABLEプロシージャ

このプロシージャは、CLIENT_ID_STAT_ENABLEプロシージャによって有効にされたすべてのインスタンスに対する統計情報収集を無効にして、収集済の統計情報をV$CLIENT_STATSビューから削除します。

構文

DBMS_MONITOR.CLIENT_ID_STAT_DISABLE(
   client_id            IN   VARCHAR2);

パラメータ

表60-2 CLIENT_ID_STAT_DISABLEプロシージャのパラメータ

パラメータ 説明

client_id

統計情報収集が無効にされるクライアント識別子


指定したクライアント識別子に対する統計情報収集を無効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.CLIENT_ID_STAT_DISABLE('janedoe');

CLIENT_ID_STAT_ENABLEプロシージャ

このプロシージャは、指定されたクライアント識別子に対する統計情報収集を有効にします。統計情報の収集はデータベース全体に対して実行され、インスタンスの起動や再起動を行っても中断されません。つまり、同じデータベースのすべてのインスタンス(再起動されたインスタンスを含む)に関する統計情報が収集されます。統計情報は、V$CLIENT_STATSビューを使用して参照できます。

構文

DBMS_MONITOR.CLIENT_ID_STAT_ENABLE(
   client_id            IN   VARCHAR2);

パラメータ

表60-3 CLIENT_ID_STAT_ENABLEプロシージャのパラメータ

パラメータ 説明

client_id

統計情報収集が有効にされるクライアント識別子


指定したクライアント識別子を持つクライアントに関する統計情報収集を有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.CLIENT_ID_STAT_ENABLE('janedoe');

CLIENT_ID_TRACE_DISABLEプロシージャ

このプロシージャは、CLIENT_ID_TRACE_ENABLEプロシージャによって有効にされたSQLトレースを無効にします。

構文

DBMS_MONITOR.CLIENT_ID_TRACE_DISABLE(
 client_id            IN   VARCHAR2);

パラメータ

表60-4 CLIENT_ID_TRACE_DISABLEプロシージャのパラメータ

パラメータ 説明

client_id

SQLトレースが無効にされるクライアント識別子


EXECUTE DBMS_MONITOR.CLIENT_ID_TRACE_DISABLE ('janedoe');

CLIENT_ID_TRACE_ENABLEプロシージャ

このプロシージャは、指定されたクライアント識別子に対するSQLトレースをデータベース全体で有効にします。

構文

DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE(
   client_id    IN  VARCHAR2,
   waits        IN  BOOLEAN DEFAULT TRUE,
   binds        IN  BOOLEAN DEFAULT FALSE);

パラメータ

表60-5 CLIENT_ID_TRACE_ENABLEプロシージャのパラメータ

パラメータ 説明

client_id

SQLトレースが有効にされるクライアント識別子。

waits

TRUEの場合、待機情報がトレースに存在します。

binds

TRUEの場合、バインド情報がトレースに存在します。


使用上の注意

EXECUTE DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE('janedoe', TRUE,
FALSE);

DATABASE_TRACE_DISABLEプロシージャ

このプロシージャは、データベース全体または特定のインスタンスに対するSQLトレースを無効にします。

構文

DBMS_MONITOR.DATABASE_TRACE_DISABLE(
   instance_name  IN VARCHAR2 DEFAULT NULL);

パラメータ

表60-6 DATABASE_TRACE_DISABLEプロシージャのパラメータ

パラメータ 説明

instance_name

指定したインスタンスに対するトレースを無効にします。



DATABASE_TRACE_ENABLEプロシージャ

このプロシージャは、データベース全体または特定のインスタンスに対するSQLトレースを有効にします。

構文

DBMS_MONITOR.DATABASE_TRACE_ENABLE(
   waits          IN BOOLEAN DEFAULT TRUE,
   binds          IN BOOLEAN DEFAULT FALSE,
   instance_name  IN VARCHAR2 DEFAULT NULL);

パラメータ

表60-7 DATABASE_TRACE_ENABLEプロシージャのパラメータ

パラメータ 説明

waits

TRUEの場合、待機情報がトレースに存在することになります。

binds

TRUEの場合、バインド情報がトレースに存在することになります。

instance_name

このパラメータにインスタンス名を指定すると、指定されたインスタンスに対するトレースのみが有効にされます。



SERV_MOD_ACT_STAT_DISABLEプロシージャ

このプロシージャは、統計情報収集を無効にして、収集済の統計情報をV$SERV_MOD_ACT_STATSビューから削除します。統計情報収集の無効化はデータベース全体に適用されます。つまり、同じデータベースのインスタンス(統計情報収集の有効化によってアクティブになったdblinksを含む)に関する統計情報の収集が停止します。

構文

DBMS_MONITOR.SERV_MOD_ACT_STAT_DISABLE(
   service_name    IN VARCHAR2,
   module_name     IN VARCHAR2,
   action_name     IN VARCHAR2 DEFAULT ALL_ACTIONS);

パラメータ

表60-8 SERV_MOD_ACT_STAT_DISABLEプロシージャのパラメータ

パラメータ 説明

service_name

統計情報収集が無効にされるサービスの名前。

module_name

モジュールの名前。サービス名に対する追加の修飾子。このパラメータは省略できません。

action_name

アクションの名前。サービス名とモジュール名に対する追加の修飾子。 このパラメータを省略するか、ALL_ACTIONS定数に設定すると、指定されたサービス名/モジュール名の組合せに一致するすべてのアクションに対する統計情報収集が無効になります。この場合、統計情報は、モジュール・レベルで収集されます。



SERV_MOD_ACT_STAT_ENABLEプロシージャ

このプロシージャは、サービス名、モジュール名およびアクション名の指定された組合せに対する統計情報収集を有効にします。このプロシージャをコールすると、同じデータベースのすべてのインスタンス上で、サービス名、モジュール名およびアクション名の階層的な組合せに対する統計情報収集が有効になります。統計情報は、V$SERV_MOD_ACT_STATSビューを使用して参照できます。

構文

DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(
   service_name    IN VARCHAR2,
   module_name     IN VARCHAR2,
   action_name     IN VARCHAR2 DEFAULT ALL_ACTIONS);

パラメータ

表60-9 SERV_MOD_ACT_STAT_ENABLEプロシージャのパラメータ

パラメータ 説明

service_name

統計情報収集が有効にされるサービスの名前。

module_name

モジュールの名前。サービス名に対する追加の修飾子。このパラメータは省略できません。

action_name

アクションの名前。サービス名とモジュール名に対する追加の修飾子。 このパラメータを省略するか、ALL_ACTIONS定数に設定すると、指定されたサービス名/モジュール名の組合せに一致するすべてのアクションに対する統計情報収集が有効になります。この場合、統計情報は、モジュール・レベルで収集されます。


使用上の注意

モジュール名/アクション名にはNULLと区別できない空文字列を指定できるため、サービス名/モジュール名/アクション名の特定の組合せに対して統計収集を有効にする指定が若干複雑になります。そのため、次のような表記規則を採用しています。

次に示す特別な定数(実際のアクション名としては使用されないような名前)が定義されています。

ALL_ACTIONS constant VARCHAR2 := '###ALL_ACTIONS';

ALL_ACTIONSを使用してアクションを指定すると、特定のモジュール名を持つすべてのアクションに対して統計情報収集が有効になります。一方、NULL(または空文字列)を指定すると、名前が空文字列であるアクションに対して統計情報収集が有効になります。

サービス名とモジュール名の指定された組合せに対する統計情報を収集するには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE( 'APPS1','PAYROLL');

サービス名、モジュール名およびアクション名の指定された組合せに対する統計情報を収集するには、次のコマンドを実行します。

EXECUTE
DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE('APPS1','GLEDGER','DEBIT_ENTRY');

これら2つのコマンドを両方とも実行すると、次のような統計情報が収集されます。


SERV_MOD_ACT_TRACE_DISABLEプロシージャ

このプロシージャは、サービス名、モジュール名およびアクション名の指定された組合せに対して有効にされたSQLトレースをデータベース全体で(すべてのインスタンスについて)無効にするか、特定のインスタンスに限定して無効にします。

構文

DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE(
   service_name    IN VARCHAR2,
   module_name     IN VARCHAR2,
   action_name     IN VARCHAR2 DEFAULT ALL_ACTIONS,
   instance_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表60-10 SERV_MOD_ACT_TRACE_DISABLEプロシージャのパラメータ

パラメータ 説明

service_name

トレースが無効にされるサービスの名前。

module_name

モジュールの名前。サービス名に対する追加の修飾子。

action_name

アクションの名前。サービス名とモジュール名に対する追加の修飾子。

instance_name

このパラメータにインスタンス名を指定すると、指定された名前を持つインスタンス(instance_name)に対するトレースに制限されます。


使用上の注意

module_nameパラメータにNULLを指定すると、モジュール属性が設定されないセッションに関するトレース情報が収集されなくなります。

APPS1という名前のサービスに対するトレースを有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE('APPS1',
            DBMS_MONITOR.ALL_MODULES,  DBMS_MONITOR.ALL_ACTIONS,TRUE,
FALSE,NULL);

前のステップで指定したトレースを無効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE('APPS1');

サービス名とモジュール名(アクションは無条件)の指定された組合せに対するトレースを有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE('APPS1','PAYROLL',
            DBMS_MONITOR.ALL_ACTIONS,TRUE,FALSE,NULL);

前のステップで指定したトレースを無効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE('APPS1','PAYROLL');

SERV_MOD_ACT_TRACE_ENABLEプロシージャ

このプロシージャは、instance_nameが指定されていないかぎり、サービス名、モジュール名およびアクション名の指定された組合せに対するSQLトレースをデータベース全体で有効にします。

構文

DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(
   service_name    IN VARCHAR2,
   module_name     IN VARCHAR2 DEFAULT ANY_MODULE,
   action_name     IN VARCHAR2 DEFAULT ANY_ACTION,
   waits           IN BOOLEAN DEFAULT TRUE,
   binds           IN BOOLEAN DEFAULT FALSE,
   instance_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表60-11 SERV_MOD_ACT_TRACE_ENABLEプロシージャのパラメータ

パラメータ 説明

service_name

トレースが有効にされるサービスの名前。

module_name

モジュールの名前。サービス名に対する追加の修飾子(オプション)。

action_name

アクションの名前。サービス名とモジュール名に対する追加の修飾子(オプション)。

waits

TRUEの場合、待機情報がトレースに存在します。

binds

TRUEの場合、バインド情報がトレースに存在します。

instance_name

このパラメータにインスタンス名を指定すると、指定された名前を持つインスタンス(instance_name)に対するトレースに制限されます。


使用上の注意

APPS1という名前のサービスに対するトレースを有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE('APPS1',
            DBMS_MONITOR.ALL_MODULES,  DBMS_MONITOR.ALL_ACTIONS,TRUE,
FALSE,NULL);

サービス名とモジュール名(アクションは無条件)の指定された組合せに対するトレースを有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE('APPS1','PAYROLL',
            DBMS_MONITOR.ALL_ACTIONS,TRUE,FALSE,NULL);

SESSION_TRACE_DISABLEプロシージャ

このプロシージャは、指定されたデータベース・セッション識別子(SID)に対するSQLトレースをローカル・インスタンス上で無効にします。

構文

DBMS_MONITOR.SESSION_TRACE_DISABLE(
   session_id      IN     BINARY_INTEGER DEFAULT NULL,
   serial_num      IN     BINARY_INTEGER DEFAULT NULL);

パラメータ

表60-12 SESSION_TRACE_DISABLEプロシージャのパラメータ

パラメータ 説明

session_id

SQLトレースが無効にされるデータベース・セッション識別子(SID)。

serial_num

現行のデータベース・セッションのシリアル番号。


使用上の注意

serial_numNULLで、session_idが指定されている場合は、セッションのシリアル番号に関係なく、session_idを持つセッションがトレースの対象から除外されます。session_idserial_numが両方ともNULLである場合は、現行ユーザーのセッションがトレースの対象から除外されます。session_idNULLを指定し、serial_numNULL以外の値を指定することはできません。なお、NULL値はデフォルトであり、省略できます。

指定したクライアントのセッション識別子を持つクライアント・セッションに対するトレースを有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(7,4634, TRUE, FALSE);

前のステップで指定したトレースを無効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE(7,4634);;

SESSION_TRACE_ENABLEプロシージャ

このプロシージャは、指定されたデータベース・セッション識別子(SID)に対するSQLトレースをローカル・インスタンス上で有効にします。

構文

DBMS_MONITOR.SESSION_TRACE_ENABLE(
    session_id   IN  BINARY_INTEGER DEFAULT NULL,
    serial_num   IN  BINARY_INTEGER DEFAULT NULL,
    waits        IN  BOOLEAN DEFAULT TRUE,
    binds        IN  BOOLEAN DEFAULT FALSE)

パラメータ

表60-13 SESSION_TRACE_ENABLEプロシージャのパラメータ

パラメータ 説明

session_id

SQLトレースが有効にされるデータベース・セッション識別子。NULLを指定すると、現行セッションがトレースされます。

serial_num

現行のデータベース・セッションのシリアル番号。NULLを指定すると、シリアル番号に関係なく、session_idと一致するすべてのセッションがトレースされます。

waits

TRUEの場合、待機情報がトレースに存在します。

binds

TRUEの場合、バインド情報がトレースに存在します。


使用上の注意

このプロシージャは、指定されたデータベース・セッション識別子(SID)に対するSQLトレースを有効にします。クライアント/サーバー・アプリケーションでも使用できます。データベース・セッションは複数のインスタンスに及ばないため、トレースはコール元が接続されているインスタンス上のみで有効になります。つまり、トレースはローカル・インスタンス上のみで実行されます。

serial_numNULLで、session_idが指定されている場合は、セッションのシリアル番号に関係なく、session_idを持つセッションがトレースされます。session_idserial_numが両方ともNULLである場合は、現行ユーザーのセッションがトレースされます。session_idNULLを指定し、serial_numNULL以外の値を指定することはできません。なお、NULL値はデフォルトであり、省略できます。

指定したクライアントのセッション識別子を持つクライアント・セッションに対するトレースを有効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(7,4634, TRUE, FALSE);

前のステップで指定したトレースを無効にするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE(7,4634);

セッション識別子が5であるセッションをトレースするには、次のいずれかのコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(5);

または

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(5, NULL);

現行のユーザーのセッションをトレースするには、次のいずれかのコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE();

または

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(NULL, NULL);

また、待機情報とバインド情報を収集しながら現行ユーザーのセッションをトレースするには、次のコマンドを実行します。

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(NULL, NULL, TRUE, TRUE);

また、同じトレースを、キーワード構文を使用して次のようにも実行できます。

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(binds=>TRUE);