• ベストアンサー

oracle8.1で発行されたSQLをモニタリングする方法

oracle8.1で発行されたSQLをモニタリングする方法を 教えて下さい。 標準の機能であるのでしょうか? また、市販の製品などであれば、教えて下さい。

  • Oracle
  • 回答数3
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#65175
noname#65175
回答No.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/ora/ora_turne/ora_turne_210.html
jiji333
質問者

補足

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

その他の回答 (2)

  • trictrac
  • ベストアンサー率38% (10/26)
回答No.2

リアルタイムにトレースする事はできないので、 アーカイブログを取れば、更新履歴はわかります。 ただし、更新履歴だけなので、検索はわかりません。 ただ、セッション毎にそのセッションが最後に発行した 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

  • ishi7474
  • ベストアンサー率32% (71/216)
回答No.1

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

関連するQ&A

  • Oracle8iでのSQL履歴

    Windows上のOracle8i 8.1.7に、外部の別の市販のアプリからSQLでアクセスされている時に、Oracle8i側で、リアルタイムにどのようなSQLコマンドを受付けていたかを知る方法はないのでしょうか?

  • SQLの発行方法

    SQL文を発行する場合にはSQL文を変数に格納してExecuteメソッドで発行しますが、SQL文が2文になる場合(最初のSQL文であるデータを取得して、次のSQL文でそのデータを使って検索等を行うとき)にはもう一度上記の手続きを繰り返すしかないのでしょうか?。 あるいは、SQL文を長くして一文にまとめる(できる場合とできない場合があるように思うのですが)方法があるのでしょうか 一般的な処理方法を教えていただけないでしょうか

  • SQLサーバとOracleどっちが多く使われてますか?

    データベースの勉強をしようと思っていますが、SQLサーバかOracleどっちを勉強しようか迷ってます。就職の機会が欲しいので、多くの職がある方を勉強しようと思っています。 SQLサーバかOracleかどちらの方が多く使われているのでしょうか?

  • SQL、Oracle どちらが理解しやすい?

    今度大学でSQLまたはOracleどちらかの授業、そしてVBの授業を必修でとらなければいけません。が、頭が良いとは言えない私ですのでプログラミング言語やデータベース言語等のコンピューター系言語が関わるシステム系のことは先ほど少し調べてみましたが、さっぱり理解できません。 SQLとOracle、どちらが比較的易しいでしょうか? クラスネームが[Introduction to SQL][Introduction to Oracle]でしたので、恐らくそんな深く突っ込んだところまではやらない・・・と思いたいです。ですがデザインはすこしぐらいはやるみたいです。VBは[VB 1]です。 大学がアメリカの大学ですので、日本語でも何やらわからないものを英語で・・・となると大きな不安が付きまとうのです。(言語自体はアルファベットですが、説明が・・・) また、SQL(Oracle)とVB、どちらを先に履修すればもう片方が理解しやすいよー。などは無いでしょうか?それとも全く別物だからどっちを先に履修しても違いはない、ということでしょうか? やるとなれば日本語のサイトを使いながら必死こいてやります。皆さま少しだけアドバイスをください。

  • Oracle,Sqlのメール配信サイトってないでしょうか

    お世話になります。 仕事でOracle、SQLを使用することになりました。 なかなか慣れないので、問題やクイズ(?)を配信してくれるサイトを 探しています。 おすすめサイトをご存知でしたら教えてください。 ポイントは発行いたしますのでよろしくお願いいたします。

  • SQLとORACLEの違いを教えてください

    はじめまして。 カテゴリーがここで良いのかわからないのですが・・・ SQLとORACLEをやっているのですが、いまいち違いがわかりません。 バージョンによってここが違う等ではなく、根本的に何処がどのように違うものなのか教えてください。 あと、「ORACLEはSQLを自装したもの」と聞いたのですが、自装ってどういうことですか? 基本的なことばかりですが、よろしくお願い致します。

  • oracle8i SQLリファレンス探しています。

    oracle8i SQLリファレンス探しています。 oracle8i workgroup serverを入れております。 oracle documentationなども見ましたが、マニュアルを探せずにいます。 どなたかoracle8i SQLリファレンスのある場所をご存知の方いらっしゃれば、教えて頂きたく宜しくお願い致します。

  • SQL文を発行すると。。。

    Oracle初心者です。 SQL*PlusであるテーブルにSelect文を発行するといつまでも検索し続けて止まりません(繰り返されているようです)。レコードは一件しか入っていませんので一件だけ検索しても同じです。 他のテーブルはそんなことないのですがあるテーブルだけこの現象が発生します。 列は200近くあります。 ご存知の方いらっしゃったら教えて下さい。よろしくお願いします。

  • 拡張SQLの記述方法を教えてください(Oracle・SQLserver)

    SQL文内に"sysdate"を記述してしまうとOracleでは動作しますが、 SQLsercerではエラーになると思います。そこで「拡張SQL」を 使用すればOracleでもSQLserverでも動作するようになると 聞いたのですが記述方法がわかりません。 どなたかご教授いただけませんでしょうか? 宜しくお願いいたします。

  • transact-sqlからoracle DBを参照したい。

    transact-sqlからoracle DBを参照したい。 sql-server 2005 window server 2003 R2での環境です。transact-sqlを使用して、他のマシン上にあるoracle データベース上のテーブルのデータを取得し、そのデータを自身のマシン上のsql serverのテーブルに格納したいのですが、そのようなことはできますでしょうか。 もし、できるとすれば、どのような方法(手順)になるのでしょうか。