アプリ版:「スタンプのみでお礼する」機能のリリースについて

oracle8.1で発行されたSQLをモニタリングする方法を
教えて下さい。

標準の機能であるのでしょうか?
また、市販の製品などであれば、教えて下さい。

A 回答 (3件)

おっしゃっている「モニタリング」をどのような頻度、どのような目的で行うのかが分かりませんので、推測で回答させていただきます。



そのときそのときのSQLを取得するならば、No.1の方がおっしゃっているSQLトレースが一般的だと思います。取得方法は、下記URLのサイトが参考になります。

参考サイトで記述されているSQLトレースはコマンドベースでの操作になるので、もっと簡単にGUIで確認するには、Oraceデータベースの管理ツールのひとつである「Oracle Enterprise Manager」を利用するとよいと思います。

Oracle Enterprise ManagerにSYSTEMユーザなどでログインし、ツリーメニュー[インスタンス]>[セッション]から、アクティブなセッション(クエリを処理しているセッション)が確認できます。ダブルクリックで処理中のSQL文やSQLの実行計画を確認・保存できます。

参考URL:http://www.geocities.jp/principal_focuses/tech/o …

この回答への補足

回答ありがとうございます。
ご指摘のあった目的ですが、実はORACLEを利用しているアプリケーションが、通常2,3秒で終わる処理が
30秒近くかかることが場合があり、毎回というわけではない為、複数の処理がバッティングし、行ロック開放まちになっているのではないかと予想しています。
目的としてはこのアプリケーションの問題を解決したいということですが、問題のSQLを特定することで、アプリケーションの問題のコーディング箇所をしぼれるのではないかと思っています。もっといい方法がありますか?(この件は、別の質問で投げるつもりです。) 

補足日時:2006/08/30 10:43
    • good
    • 0

リアルタイムにトレースする事はできないので、


アーカイブログを取れば、更新履歴はわかります。
ただし、更新履歴だけなので、検索はわかりません。
ただ、セッション毎にそのセッションが最後に発行した
SQL分はわかるので、それを確認すれば如何でしょう。

市販ツールでは、システムインテグレータの『ObjectBrowser』
というソフトなら、その情報をGUIで見ることが出来ます。
また、下記のSQL文でも、同じ情報がみれますが・・・。
select sess.sid
, sess.serial#
, sess.status
, sess.username
, sess.machine
, sess.osuser
, sess.logon_time
, sess.program
, dbaobj.object_name
, sqla.sql_text
from , v$session sess
, v$sqlarea sqla
, v$locked_object obj
, dba_objects dbaobj
where sess.sql_hash_value = sqla.hash_value(+)
andsess.sql_address = sqla.address(+)
and obj.session_id(+) = sess.sid
and dbaobj.object_id(+) = obj.object_id
and sess.username is not null
order by sess.sid
    • good
    • 0

リアルタイムにモニタするのでなければ、SQLトレースを取得することは標準機能だけでできると思います。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す