データベース内で最新のSQLステートメントを見つける方法


回答:


17

これがジョブを実行するSQLです。試用版を開きます。

ステップ1:インストールIDとユーザーIDを決定します。

SELECT inst_id,sid FROM gv$session WHERE username='<ENTER-USERNAME>';

ステップ2:

SELECT 
      s.sid
     ,s.CLIENT_INFO
     ,s.MACHINE
     ,s.PROGRAM
     ,s.TYPE
     ,s.logon_time
     ,s.osuser
     ,sq.sorts
     ,sq.DISK_READS
     ,sq.BUFFER_GETS
     ,sq.ROWS_PROCESSED
     ,sq.SQLTYPE
     ,sq.SQL_TEXT
 FROM gv$session s    
    , gv$sql sq
WHERE s.SQL_HASH_VALUE = sq.HASH_VALUE
  AND s.inst_id = :inst_id -- replace with instID from above
  AND s.sid = :sid -- replace with ID from above
  AND sq.inst_id = s.inst_id

複数のIDとインスタンスIDが返される場合があります。そのため、Webインターフェースなどでこのデータを使用する方法は、ユーザーの選択次第です。


ちょっとした注意:Oracleはinタプルを使用した演算子(どのバージョンからのアイデアもありません)をサポートしているため、上記の例から... AND (s.inst_id, s.sid) in ( (:id1, :sid1), (:id2, :sid2), ... )
-Betlista

1
「inst_id」はインスタンスIDを表し、インストールIDを意味しません。
奇跡173

13

Oracles Enterprise Monitorコンソールは、どのSQLクエリが最大CPU、ボトルネック、データベースのトップアクティビティ、SQLのブロックなどを行っているかに関する豊富な情報を表示します。

歴史的なアプローチの場合、OracleのAWRレポートを使用して、自分に関するポイントポイントを特定できます。

代替テキスト

ここに画像の説明を入力してください


1
好奇心から-AWRはすべてのOracleライセンスで利用できるツールであり、コマンドラインからのみ使用できますか?
セバスチャンロス

2
申し訳ありませんが、言及したはずです-私が知っていることから、AWRには別のライセンスであるOracle Tuning&Diagnostic Packが必要です。Enterprise ManagerコンソールからAWRを使用することを好みます-Enterprise Managerコンソールを使用する特権(!)に恵まれています。私はまたことが判明あなたはSQLを監視するために、SQL Developerを使用することができますが、それは上記のライセンスが必要です
Sathyajith Bhatさん

1
Oracle Enterprise Manager(OEM)は非常に優れています。自動更新されたグラフを使用して、ほぼリアルタイムでデータベースの状態を監視できます。プライマリデータベースのOEMを24時間年中無休で表示する大きなモニターが壁に掛けられており、問題が発生したときにそれを特定するのに非常に有益です。
-ScottCher

4

を使用することもできV$SQLますRUNTIME_MEM, EXECUTIONS, DISK_READS, SORTS, ELAPSED_TIME, SQL_FULLTEXT。いくつかの興味深い列などがあります。

これにより、ディスク読み取りごとに上位10個のステートメントが得られます(注-これはすべての実行で累積されます)。

select sql_id,child_number from
(
select sql_id,child_number from v$sql
order by disk_reads desc
)
where rownum<11

ステートメントがまだある場合はV$SQL_PLAN、クエリの実際のExplain Planを取得できます。

select * from table(dbms_xplan.display_cursor('sql_id',child_number));

また、V$SQL_PLAN良い情報が含まれているので使用したいです。お使いの場合にstatistics_level=ALLは、使用することができますV$SQL_PLAN_STATISTICS


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.