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

Cách kiểm tra cơ sở dữ liệu Oracle để tìm các truy vấn chạy dài

Cái này hiển thị SQL hiện là "ACTIVE":-

select S.USERNAME, s.sid, s.osuser, t.sql_id, sql_text
from v$sqltext_with_newlines t,V$SESSION s
where t.address =s.sql_address
and t.hash_value = s.sql_hash_value
and s.status = 'ACTIVE'
and s.username <> 'SYSTEM'
order by s.sid,t.piece
/

Điều này cho thấy ổ khóa. Đôi khi mọi thứ diễn ra chậm nhưng đó là do nó bị chặn khi chờ khóa:

select
  object_name, 
  object_type, 
  session_id, 
  type,         -- Type or system/user lock
  lmode,        -- lock mode in which session holds lock
  request, 
  block, 
  ctime         -- Time since current mode was granted
from
  v$locked_object, all_objects, v$lock
where
  v$locked_object.object_id = all_objects.object_id AND
  v$lock.id1 = all_objects.object_id AND
  v$lock.sid = v$locked_object.session_id
order by
  session_id, ctime desc, object_name
/

Đây là một phương pháp tốt để tìm các thao tác dài (ví dụ:quét toàn bộ bảng). Nếu đó là do nhiều thao tác ngắn, sẽ không có gì hiển thị.

COLUMN percent FORMAT 999.99 

SELECT sid, to_char(start_time,'hh24:mi:ss') stime, 
message,( sofar/totalwork)* 100 percent 
FROM v$session_longops
WHERE sofar/totalwork < 1
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giới thiệu về con trỏ tham chiếu PL / SQL trong cơ sở dữ liệu Oracle

  2. Hướng dẫn từng bước để cài đặt hộp ảo Oracle

  3. Nhà cung cấp ADO.NET 'Oracle.ManagedDataAccess.Client' không được đăng ký trong tệp cấu hình máy hoặc ứng dụng hoặc không thể tải được

  4. Làm cách nào để tôi có thể đưa ra một lệnh duy nhất từ ​​dòng lệnh thông qua sql plus?

  5. Làm thế nào để tạo lập trình DDL từ cơ sở dữ liệu Oracle?