Oracle

  (最終更新日:2014.08.23)

長時間動いているセッション(SQL)の情報を取得するSQL

Oracleで長時間稼働している処理(SQL)の情報を取得するSQLがあります。
方法は簡単で v$session を利用するだけ。セッションがアクティブになってからの経過時間(秒)を表す last_call_et を確認します。

SELECT
    last_call_et,
    state,
    event,
    username,
    osuser,
    machine,
    terminal,
    program,
    sid,
    serial#,
    status,
    sql_address,
    q.sql_id
FROM
    v$session s
    left join v$sqltext q on(s.sql_id = q.sql_id)
WHERE
    type = 'USER' AND
    STATUS = 'ACTIVE'
group by
    last_call_et,
    state,
    event,
    username,
    osuser,
    machine,
    terminal,
    program,
    sid,
    serial#,
    status,
    sql_address,
    q.sql_id
ORDER BY
    last_call_et desc

取得した情報から該当のSQLのセッションID、SQL_IDなどが確認できます。 しかし中には SQL_ID が Unknown となっている場合もあるのでその場合は SQL_ID を取得することができません。無念。

スポンサーリンク
スポンサーリンク

関連記事

  1. MaxGauge

    MaxGaugeインストール:ORADEBUGを利用してIPCを確認する方法

    MaxGaugeをインストールする際に、監視対象のインスタンスのIPC…

  2. Oracle

    [TNS-00525: 操作するには権限が不十分です] リスナーが起動できないときの対処方法

    CentOS 6のサーバにOracleを入れたり消したりしていたらリス…

  3. Oracle

    DBD-Oracleのインストール時にdemo_rdbms.mkが無い場合。Clientは必要なのか…

    PerlモジュールのDBD-Oracleをソースからインストールする際…

  4. Oracle

    OracleでDBの文字コードを確認する方法

    Oracleデータベースで、データベースの文字コードを確認する方法のメ…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. 【vsftpdを守る】CentOS 7にfail2banをイ…
  2. nologinを指定したユーザーでFTP接続するとパスワード…
  3. CentOS 7にTomcatをインストールして起動したらエ…
  4. NetApp / cDot : AutoSupport Ma…
  5. [Oracle] sysでユーザーを指定してexpdpをする…
PAGE TOP