Làm thế nào để bạn hiển thị SQL thực thi trên cơ sở dữ liệu Oracle?


26

Làm thế nào bạn có thể hiển thị SQL hiện đang thực thi trên một orory db?

Thông tin bổ sung sẽ hữu ích sẽ bao gồm người dùng, id phiên, v.v.

Câu trả lời:


35

Hầu hết các thông tin có sẵn trong phiên v $ ... và Văn bản SQL có thể được lấy từ v $ sql hoặc v $ sqltext_with_newlines ...

Đây là một truy vấn mà tôi thường sử dụng các định dạng SQL trên máy bay, chạy lâu nhất ở trên cùng.

-- 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;

ý nghĩa của In SQL là gì?
toha

Trong chuyến bay = hiện đang chạy trên cơ sở dữ liệu oracle hoặc trong trường hợp này hiện có sẵn trong phiên v $ và trạng thái = 'HOẠT ĐỘNG'
David Mann

9

Câu trả lời tốt được tìm thấy ở đây .

Thực hiện sql sau:

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;

Nếu đầu ra không thể đọc được, hãy thay đổi LINESIZE (lấy từ đây ):

SET LINESIZE 20000

Nếu sql ở trên không hoạt động, bạn có thể cần phải đăng nhập như sysdba:

sqlplus '/as sysdba'

Liên kết của bạn đến câu trả lời hay đã chết
Gerrat

@Gerrat Tôi đã cập nhật liên kết đến một kho lưu trữ được lưu trữ.
Clarkey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.