Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách xem câu lệnh Oracle SQL thực đang được thực thi

Về phía từ điển dữ liệu, có rất nhiều công cụ bạn có thể sử dụng, chẳng hạn như Schema Spy

Để xem các truy vấn đang chạy, hãy xem các khung nhìn sys.v_ $ sql và sys.v_ $ sqltext. Bạn cũng sẽ cần quyền truy cập vào sys.all_users

Một điều cần lưu ý rằng các truy vấn sử dụng tham số sẽ hiển thị một lần với các mục nhập như

and TABLETYPE=’:b16’

trong khi những cái khác không hiển thị nhiều lần như:

and TABLETYPE=’MT’

Ví dụ về các bảng này đang hoạt động là SQL sau để tìm 20 ổ đĩa hàng đầu. Bạn có thể thay đổi điều này bằng cách xóa WHERE rownum <=20 và có thể thêm ORDER BY mô-đun . Bạn thường thấy mô-đun sẽ cung cấp cho bạn manh mối về phần mềm nào đang chạy truy vấn (ví dụ:"TOAD 9.0.1.8", "JDBC Thin Client", "[email protected] (TNS V1-V3)", v.v.)

SELECT 
 module, 
 sql_text, 
 username, 
 disk_reads_per_exec, 
 buffer_gets, 
 disk_reads, 
 parse_calls, 
 sorts, 
 executions, 
 rows_processed, 
 hit_ratio, 
 first_load_time, 
 sharable_mem, 
 persistent_mem, 
 runtime_mem, 
 cpu_time, 
 elapsed_time, 
 address, 
 hash_value 
FROM 
  (SELECT
   module, 
   sql_text , 
   u.username , 
   round((s.disk_reads/decode(s.executions,0,1, s.executions)),2)  disk_reads_per_exec, 
   s.disk_reads , 
   s.buffer_gets , 
   s.parse_calls , 
   s.sorts , 
   s.executions , 
   s.rows_processed , 
   100 - round(100 *  s.disk_reads/greatest(s.buffer_gets,1),2) hit_ratio, 
   s.first_load_time , 
   sharable_mem , 
   persistent_mem , 
   runtime_mem, 
   cpu_time, 
   elapsed_time, 
   address, 
   hash_value 
  FROM
   sys.v_$sql s, 
   sys.all_users u 
  WHERE
   s.parsing_user_id=u.user_id 
   and UPPER(u.username) not in ('SYS','SYSTEM') 
  ORDER BY
   4 desc) 
WHERE
 rownum <= 20;

Lưu ý rằng nếu truy vấn dài .. bạn sẽ phải truy vấn v_ $ sqltext. Điều này lưu trữ toàn bộ truy vấn. Bạn sẽ phải tra cứu ĐỊA CHỈ và HASH_VALUE và chọn tất cả các mảnh. Vd:

SELECT
 *
FROM
 sys.v_$sqltext
WHERE
 address = 'C0000000372B3C28'
 and hash_value = '1272580459'
ORDER BY 
 address, hash_value, command_type, piece
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong SQL, việc sử dụng dấu ngoặc đơn với OR có nghĩa là gì?

  2. Cách cài đặt nhà phát triển SQL trên máy Mac

  3. Truy vấn SQL để tìm các hàng bị thiếu giữa hai bảng có liên quan

  4. Chương trình PL / SQL để in chi tiết nhân viên

  5. Làm cách nào để kết nối với Cơ sở dữ liệu Oracle trong R?