オラクル・データベースのクライアントがサーバに接続すると、固有のセッションが生成される。V$SESSION は現在のセッション情報を示す動的パフォーマンス・ビューである。
| 列名 | データ型 | 説明 |
|---|---|---|
| SADDR | RAW(4 | 8) | セッション・アドレス |
| SID | NUMBER | セッション識別子 |
| SERIAL# | NUMBER | セッション・シリアル番号 |
| AUDSID | NUMBER | 監査セッションID |
| PADDR | RAW(4 | 8) | セッションを所有するプロセスのアドレス |
| USER# | NUMBER | Oracleユーザー識別子 |
| AUDSID | VARCHAR2(30) | Oracleユーザー名 |
| COMMAND | NUMBER | 実行中のコマンド |
| OWNERID | NUMBER | 移行可能なセッションを持つユーザーの識別子 |
| TADDR | VARCHAR2(8) | トランザクション・ステート・オブジェクトのアドレス |
| LOCKWAIT | VARCHAR2(8) | 大気中のロック・アドレス |
| STATUS | VARCHAR2(8) | セッションの状態 |
| SERVER | VARCHAR2(9) | サーバー・タイプ |
| SCHEMA# | NUMBER | スキーマ・ユーザー識別子 |
| SCHEMANAME | VARCHAR2(30) | スキーマ・ユーザー名 |
| OSUSER | VARCHAR2(30) | OSのユーザー名 |
| PROCESS | VARCHAR2(24) | OSのプロセスID |
| MACHINE | VARCHAR2(64) | OSのマシン名 |
| PORT | NUMBER | クライアントのポート番号 |
| TERMINAL | VARCHAR2(30) | OSの端末名 |
| PROGRAM | VARCHAR2(48) | OSのプログラム名 |
| TYPE | VARCHAR2(10) | セッション・タイプ |
| SQL_ADDRESS | RAW(4 | 8) | SQL_HASH_VALUEとともに使用され、現在実行されているSQL文を識別する |
| SQL_HASH_VALUE | NUMBER | SQL_ADDRESSとともに使用され、現在実行されているSQL文を識別する |
| SQL_ID | VARCHAR2(13) | 現在実行されているSQL文のSQL識別子 |
| SQL_CHILD_NUMBER | NUMBER | 現在実行されているSQL文の子番号 |
| SQL_EXEC_START | DATE | 現在実行中のSQL実行が開始された時刻 |
| SQL_EXEC_ID | NUMBER | SQL実行識別子 |
| PREV_SQL_ADDR | RAW(4 | 8) | PREV_HASH_VALUEとともに使用され、前回実行されたSQL文を識別 |
| PREV_HASH_VALUE | NUMBER | SQL_HASH_VALUEとともに使用され、前回実行されたSQL文を識別 |
| PREV_SQL_ID | VARCHAR2(13) | 最後に実行されたSQL文のSQL識別子 |
| PREV_CHILD_NUMBER | NUMBER | 最後に実行されたSQL文の子番号 |
| PREV_EXEC_START | DATE | 前回実行されたSQL文のSQL実行開始 |
| PREV_EXEC_ID | NUMBER | 前回実行されたSQL文のSQL実行識別子 |
| PLSQL_ENTRY_OBJECT_ID | NUMBER | スタック上の最上位PL/SQLサブプログラムのオブジェクトID |
| PLSQL_ENTRY_SUBPROGRAM_ID | NUMBER | スタック上の最上位PL/SQLサブプログラムのサブプログラムID |
| PLSQL_OBJECT_ID | NUMBER | 現在実行中のPL/SQLサブプログラムのオブジェクトID |
| PLSQL_SUBPROGRAM_ID | NUMBER | 現在実行中のPL/SQLオブジェクトのサブプログラムID |
| MODULE | VARCHAR2(64) | 現在実行中のモジュール名 |
| MODULE_HASH | NUMBER | MODULE列のハッシュ値 |
| ACTION | VARCHAR2(64) | 現在実行中のアクション名 |
| ACTION_HASH | NUMBER | ACTION列のハッシュ値 |
| CLIENT_INFO | VARCHAR2(64) | DBMS_APPLICATION_INFO パッケージの SET_CLIENT_INFO プロシージャによって設定された情報 |
| FIXED_TABLE_SEQUENCE | NUMBER | セッションがデータベースへのコールを完了するたびに増加する数値 |
| ROW_WAIT_OBJ# | NUMBER | ROW_WAIT_ROW# に指定されている行を含む表のオブジェクトID |
| ROW_WAIT_FILE# | NUMBER | ROW_WAIT_ROW#に指定されている行を含むデータ・ファイルの識別子 |
| ROW_WAIT_BLOCK# | NUMBER | ROW_WAIT_ROW# に指定されている行を含むブロックの識別子 |
| ROW_WAIT_ROW# | NUMBER | 現在ロック中の行 |
| TOP_LEVEL_CALL# | NUMBER | Oracle最上位のコール番号 |
| LOGON_TIME | DATE | ログイン時刻 |
| LAST_CALL_ET | NUMBER | セッションがアクティブになってからの経過時間 |
| FAILOVER_TYPE | NUMBER | 透過的アプリケーション・フェイルオーバーがセッションで可能かどうか |
| FAILOVER_METHOD | VARCHAR2(10) | セッションでの透過的アプリケーション・フェイルオーバー |
| FAILED_OVER | VARCHAR2(3) | セッションがフェイルオーバー・モードで実行中かどうか |
| RESOURCE_CONSUMER_GROUP | VARCHAR2(32) | セッションのカレント・リソース・コンシューマ・グループ名 |
| PDML_STATUS | VARCHAR2(32) | PARALLEL DML使用可能モード |
| PDDL_STATUS | VARCHAR2(32) | PARALLEL DDL使用可能モード |
| PQ_STATUS | VARCHAR2(32) | PARALLEL QUERY使用可能モード |
| CURRENT_QUEUE_DURATION | NUMBER | キューに費やしている時間 |
| CLIENT_IDENTIFIER | VARCHAR2(64) | セッションのクライアント識別子 |
| BLOCKING_SESSION_STATUS | VARCHAR2(11) | ブロッキング・セッションがあるかどうか |
| BLOCKING_INSTANCE | NUMBER | ブロッキング・セッションのインスタンス識別子 |
| BLOCKING_SESSION | NUMBER | ブロックしているセッションのセッション識別子 |
| FINAL_BLOCKING_SESSION_STATUS | VARCHAR2(11) | 最終ブロッキング・セッション |
| FINAL_BLOCKING_INSTANCE | NUMBER | 最終ブロッキング・セッションのインスタンス識別子 |
| FINAL_BLOCKING_SESSION | NUMBER | ブロックしているセッションのセッション識別子 |
| SEQ# | NUMBER | 現行または前回の待機を一意に識別する番号 |
| EVENT# | NUMBER | イベント番号 |
| EVENT | VARCHAR2(64) | セッションが待機しているリソースまたはイベント |
| P1TEXT | VARCHAR2(64) | 第1待機イベント・パラメータの説明 |
| P1 | NUMBER | 第1待機イベント・パラメータ(10進数) |
| P1RAW | RAW(8) | 第1待機イベント・パラメータ(16進数) |
| P2TEXT | VARCHAR2(64) | 第2待機イベント・パラメータの説明 |
| P2 | NUMBER | 第2待機イベント・パラメータ(10進数) |
| P2RAW | RAW(8) | 第2待機イベント・パラメータ(16進数) |
| P3TEXT | VARCHAR2(64) | 第3待機イベント・パラメータの説明 |
| P3 | NUMBER | 第3待機イベント・パラメータ(10進数) |
| P3RAW | RAW(8) | 第3待機イベント・パラメータ(16進数) |
| WAIT_CLASS_ID | NUMBER | 待機イベントのクラスの識別子 |
| WAIT_CLASS# | NUMBER | 待機イベントのクラスの番号 |
| WAIT_CLASS | VARCHAR2(64) | 待機イベントのクラスの名前 |
| WAIT_TIME | NUMBER | セッションの待機時間 |
| SECONDS_IN_WAIT | NUMBER | 現在の待機が開始されるまで待機した時間 |
| STATE | VARCHAR2(19) | 待機状態 |
| WAIT_TIME_MICRO | NUMBER | 待機時間 |
| TIME_REMAINING_MICRO | NUMBER | 現在の待機の残り時間 |
| TIME_SINCE_LAST_WAIT_MICRO | NUMBER | 前回の待機終了後の経過時間 |
| SERVICE_NAME | VARCHAR2(64) | セッションのサービス名 |
| SQL_TRACE | VARCHAR2(8) | SQLトレースが使用可能か |
| SQL_TRACE_WAITS | VARCHAR2(5) | 待機トレースが使用可能か |
| SQL_TRACE_BINDS | VARCHAR2(5) | バインド・トレースが使用可能か |
| SQL_TRACE_PLAN_STATS | VARCHAR2(10) | 行ソース統計が各カーソルのトレース・ファイルにダンプされる頻度 |
| SESSION_EDITION_ID | NUMBER | |
| CREATOR_ADDR | RAW(4 | 8) | プロセスまたはサーキット作成のアドレス |
| CREATOR_SERIAL# | NUMBER | プロセスまたはサーキット作成のシリアル番号 |
| ECID | VARCHAR2(64) | アプリケーション・サーバーから送信された実行コンテキストの識別子 |
V$SESSION を参照するためには、V$SESSION に対する SELECT オブジェクト権限が必要である。V$SESSION の実態は PUBLIC SYNONYM であるため、シノニムのターゲット・オブジェクトである SYS.V_$SESSION に対する SELECT オブジェクト権限をユーザに付与する。権限を付与するためには、オラクル・サーバに SYS ユーザで接続する必要がある。
$ connect sys/oracle as sysdba
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE OBJECT_NAME ='V$SESSION';
OWNER OBJECT_NAME OBJECT_TYP
---------- ------------------------------ ----------
PUBLIC V$SESSION SYNONYM
SQL> GRANT SELECT ON SYS.V_$SESSION TO tsuka;
セッション識別子
次の Oracle 動的パフォーマンス・ビューも SID 列を持つ。
セッションを所有するプロセスのアドレスであり、V$PROCESS の ADDR に紐づいている。
セッションの状態
| 値 | セッションの状態 |
|---|---|
| ACTIVE | セッションがSQLを実行中 |
| INACTIVE | 非アクティブで、制限が構成されていないか構成された制限を超えていないセッション |
| KILLED | 消去予定のマーク付きセッション |
| CACHED | Oracle*XAで使用するために一時的にキャッシュに入っているセッション |
| SNIPED | 構成された制限のいくつかを超えている非アクティブ・セッション |
サーバー・タイプ
現在実行されているSQL文のSQL識別子
次の Oracle 動的パフォーマンス・ビューも SQL_ID 列を持つ。
現在実行されているSQL文の子番号
V$SQL 動的パフォーマンス・ビューの CHILD_NUMBER 列を指す。
セッションで下記SQLによってレポートされる値
SELECT sys_context('USERENV', 'SESSION_EDITION_ID') FROM DUAL;
オラクル・データベースの動的パフォーマンス・ビューには次のものがある。