2011-07-13 11 views
2

私はちょうどそれはヒキガエルとhungsまで非常に強力な生産環境で生成されています知っている

select sql_text 
from V$sqltext_with_newlines where 
address = (select DECODE(RAWTOHEX(sql_address), '00', prev_sql_addr, sql_address 
) 
from V$session 
where username = :uname 
and sid = :snum) 
ORDER BY piece 

のためにそれを何ですか? OFTそれは本当に問題を引き起こしている場合、これは非常に単純なクエリのように思える

COUNT(0) EVENT 
---------- ---------------------------------------------------------------- 
     1 smon timer 
     1 db file parallel read 
     1 pmon timer 
     1 read by other session 
     1 SQL*Net message to client 
     1 PL/SQL lock timer 
     2 SQL*Net break/reset to client 
     2 PX Deq Credit: send blkd 
     7 db file scattered read 
     8 db file sequential read 
     12 jobq slave wait 
     14 PX Deq: Execution Msg 
     30 rdbms ipc message 
     333 SQL*Net message from client 
     450 latch: library cache 

答えて

2

が、私は驚かれることでしょうデータ・ディクショナリ・ビュー:

いくつかのテーブルsessioneはこれを示しました。何十ものテーブルを使用していますが、このクエリの実行計画はシステム上で9ステップしかなく、クエリは非常に迅速に実行されます。オプティマイザが計画を完全に間違ったものにしても、関連するテーブルはそれほど大きくなく、物事があまりにもひどく遅くならないようにすべきです。

クエリは実際に何かをしているのですか、または誰かがさらに行を取得するのを待っていますか?このようなものを使って、消費しているリソースを調べてみてください。数値は、クエリを増加させない場合、問題はありませんが、数回それを実行します。私はヒキガエルのためにそれを使用しています正確に何か分からないが、

select elapsed_time/1000000 elapsed_seconds, cpu_time/1000000 cpu_seconds 
    ,user_io_wait_time/1000000 user_io_wait_seconds, buffer_gets 
    ,executions, v$sql.* 
from v$sql 
where lower(sql_text) like lower('%DECODE(RAWTOHEX(sql_address)%'); 

あなたのクエリは、現在実行中の文を取り出すように見えます。セッションブラウザなどの一部になっているのでしょうか? TOADと同様のクエリツールでは、このようなバックグラウンドで多くのクエリが実行されます。私は彼らがサーバーをダウンさせるのを見たことはない。 TOADでは、UIがフリーズしてクエリが本当に難しいように見えるようにするいくつかのバグがある可能性は非常に高いですが。

+0

私はいくつかの詳細を追加しましたあなたはそれらをdecyphringに私を助けることができますか? – Revious

+0

私は、PXの数が0かそれ以上になると予想します。これは、並列DMLが開始されたが即座にブロックされたことを意味します。 'v $ session.blocking_session、v $ session。* from v $ session;' あなたのセッションは、スペースのようないくつかのリソースを待っています( 'select * from dba_resumable; ' –