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. Oracle

    Statspackの取り方:テキスト形式のレポートをコマンドで出力する

    Oracleの障害や状況調査で役に立つStatspackレポートをテキ…

  2. Oracle

    impdpでインデックスのみを作成する方法

    impdpを利用してインデックスのみを作成したかったのでメモ的に。…

  3. Oracle

    Oracleのプロファイルを参照作成(コピー)するなら類似作成が便利

    Oracleでパスワードの有効期限などを独自に設定したプロファイルを作…

  4. Oracle

    【SQL*Plus】SYSDBA権限でリモートサーバに簡易接続ネーミングで接続する方法

    リモートのOracleサーバにSQL*Plusで接続する際に、SYSD…

  5. Oracle

    【Oracle】Data Pumpでシーケンスのみを移行する方法

    Data Pumpでは inculde を利用することでシーケンスのみ…

  6. Oracle

    OracleのセッションIDからOSのプロセスIDを調べる方法

    Oracleで障害調査を行いたいときなどに、sidからOSのプロセスI…

コメント

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

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

最近の記事

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