Bagaimana Anda menunjukkan eksekusi SQL pada database Oracle?


26

Bagaimana Anda bisa menunjukkan SQL yang sedang dijalankan pada oracle db?

Informasi tambahan yang akan berguna akan mencakup pengguna, id sesi, dll.

Jawaban:


35

Sebagian besar info tersedia dalam sesi v $ ... dan Teks SQL dapat diambil dari v $ sql atau v $ sqltext_with_newlines ...

Berikut adalah pertanyaan yang sering saya gunakan dalam format In-flight SQL, berjalan paling lama di atas.

-- In Flight SQL 
SELECT nvl(ses.username,'ORACLE PROC')||' ('||ses.sid||')' USERNAME,
       SID,   
       MACHINE, 
       REPLACE(SQL.SQL_TEXT,CHR(10),'') STMT, 
      ltrim(to_char(floor(SES.LAST_CALL_ET/3600), '09')) || ':'
       || ltrim(to_char(floor(mod(SES.LAST_CALL_ET, 3600)/60), '09')) || ':'
       || ltrim(to_char(mod(SES.LAST_CALL_ET, 60), '09'))    RUNT 
  FROM V$SESSION SES,   
       V$SQLtext_with_newlines SQL 
 where SES.STATUS = 'ACTIVE'
   and SES.USERNAME is not null
   and SES.SQL_ADDRESS    = SQL.ADDRESS 
   and SES.SQL_HASH_VALUE = SQL.HASH_VALUE 
   and Ses.AUDSID <> userenv('SESSIONID') 
 order by runt desc, 1,sql.piece;

apa arti dari In Flight SQL?
toha

In-flight = saat ini berjalan pada database oracle, atau dalam hal ini saat ini tersedia dalam v $ sesi dan status = 'ACTIVE'
David Mann

9

Jawaban yang bagus ditemukan di sini .

Jalankan sql berikut:

select x.sid
      ,x.serial#
      ,x.username
      ,x.sql_id
      ,x.sql_child_number
      ,optimizer_mode
      ,hash_value
      ,address
      ,sql_text
from   v$sqlarea sqlarea
      ,v$session x
where  x.sql_hash_value = sqlarea.hash_value
and    x.sql_address    = sqlarea.address
and    x.username       is not null;

Jika output tidak dapat dibaca, ubah LINESIZE (ambil dari sini ):

SET LINESIZE 20000

Jika sql di atas tidak berfungsi, Anda mungkin harus masuk sebagai sysdba:

sqlplus '/as sysdba'

Tautan Anda ke jawaban Baik sudah mati
Gerrat

@ Gerrat Saya memperbarui tautan ke arsip yang di-cache.
Clarkey
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.