Oracle V$SESSION

オラクル・データベースのクライアントがサーバに接続すると、固有のセッションが生成される。V$SESSION は現在のセッション情報を示す動的パフォーマンス・ビューである。

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;

SID

セッション識別子

次の Oracle 動的パフォーマンス・ビューも SID 列を持つ。

PADDR

セッションを所有するプロセスのアドレスであり、V$PROCESS の ADDR に紐づいている。

STATUS

セッションの状態

STATUS
セッションの状態
ACTIVE セッションがSQLを実行中
INACTIVE 非アクティブで、制限が構成されていないか構成された制限を超えていないセッション
KILLED 消去予定のマーク付きセッション
CACHED Oracle*XAで使用するために一時的にキャッシュに入っているセッション
SNIPED 構成された制限のいくつかを超えている非アクティブ・セッション

SERVER

サーバー・タイプ

SQL_ID

現在実行されているSQL文のSQL識別子

次の Oracle 動的パフォーマンス・ビューも SQL_ID 列を持つ。

SQL_CHILD_NUMBER

現在実行されているSQL文の子番号

V$SQL 動的パフォーマンス・ビューの CHILD_NUMBER 列を指す。

SESSION_EDITION_ID

セッションで下記SQLによってレポートされる値

SELECT sys_context('USERENV', 'SESSION_EDITION_ID') FROM DUAL;

動的パフォーマンス・ビュー

オラクル・データベースの動的パフォーマンス・ビューには次のものがある。