Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да проверите базата данни на Oracle за продължителни заявки

Това показва SQL, който в момента е "АКТИВЕН":-

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
/

Това показва ключалки. Понякога нещата вървят бавно, но това е защото е блокирано и чака за заключване:

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
/

Това е добро за намиране на дълги операции (например сканиране на пълна таблица). Ако е заради много кратки операции, нищо няма да се покаже.

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. Как да изберем доставчик на Oracle за .Net приложение?

  2. Как да премахнете дубликатите от списъка, разделен от пространството от Oracle regexp_replace?

  3. Как да намерите компонентите на EBS R12 Версия

  4. Oracle SQL - Сума и групиране на данни по седмица

  5. Брой редове на Oracle на таблица по брой (*) спрямо NUM_ROWS от DBA_TABLES