Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara memeriksa database Oracle untuk kueri yang berjalan lama

Yang ini menunjukkan SQL yang saat ini "AKTIF":-

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
/

Ini menunjukkan kunci. Terkadang semuanya berjalan lambat, tetapi itu karena diblokir menunggu kunci:

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
/

Ini adalah cara yang bagus untuk menemukan operasi yang panjang (misalnya pemindaian tabel lengkap). Jika karena banyak operasi singkat, tidak ada yang akan muncul.

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. Apakah ada rekomendasi resmi Oracle tentang penggunaan eksplisit ANSI JOIN vs implisit join?

  2. Bagaimana Anda mendapatkan hasil yang diformat dengan baik dari prosedur Oracle yang mengembalikan kursor referensi?

  3. Java - temukan penyebab pertama pengecualian

  4. ORA-00054:sumber daya sibuk dan dapatkan dengan SEKARANG ditentukan

  5. Proses peningkatan langkah demi langkah untuk R12.2 Upgrade Bagian -1