ここではOracleのセッションの情報を取得するSQL文について紹介します。

セッションの情報を取得する

セッションの情報を取得するには、V$SESSIONビューを参照します。

以下はsampleスキーマのセッション情報を取得するSQL文です。V$SESSIONビューの列は多いので主要な列のみ取得しています。

SELECT
  SID
  , USERNAME
  , LOCKWAIT
  , STATUS
  , SCHEMANAME
  , OSUSER
  , MACHINE
  , TERMINAL
  , PROGRAM
  , TYPE
  , MODULE
  , ACTION
  , LOGON_TIME
  , STATE
  , SERVICE_NAME 
FROM
  V$SESSION 
WHERE
  USERNAME = 'sample'


列名説明
SIDセッション識別子
USERNAMEOracleユーザー名
LOCKWAITセッションが待機しているロックのアドレス
ロックがない場合はNULL
STATUSセッションの状態
・ACTIVE:セッションがSQLを実行中
・INACTIVE:非アクティブで、制限が構成されていないか構成された制限を超えていないセッション
・KILLED:消去予定のマーク付きセッション
・CACHED:Oracle*XAで使用するために一時的にキャッシュに入っているセッション
・SNIPED:非アクティブ・セッション
SCHEMANAMEスキーマ・ユーザー名
OSUSERオペレーティング・システムのクライアント・ユーザー名
MACHINEオペレーティング・システムのマシン名
TERMINALオペレーティング・システムの端末名
PROGRAMオペレーティング・システムのプログラム名
TYPEセッション・タイプ
MODULEDBMS_APPLICATION_INFO.SET_MODULEプロシージャをコールして設定された、現在実行中のモジュール名
ACTIONDBMS_APPLICATION_INFO.SET_ACTIONプロシージャをコールして設定された、現在実行中のアクション名
LOGON_TIMEログイン時刻
STATE待機状態
・WAITING:セッションは現在待機中
・WAITED UNKNOWN TIME:前回の待機時間が不明。パラメータ・TIMED_STATISTICSがfalseに設定されている場合はこの値
・WAITED SHORT TIME:前回の待機は1/100秒未満だった
・WAITED KNOWN TIME:前回の待機時間は、WAIT_TIME列で指定される
SERVICE_NAMEセッションのサービス名

V$SESSIONのすべての列の説明については、Oracleのデータベース・リファレンスを参照してください。


以上、Oracleのセッションの情報を取得するSQL文について解説しました。