sql >> Database >  >> RDS >> Oracle

Hoe de Oracle-database te controleren op langlopende query's

Deze toont SQL die momenteel "ACTIEF" is:-

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
/

Dit toont sloten. Soms gaan dingen traag, maar dat komt omdat het is geblokkeerd in afwachting van een slot:

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
/

Dit is een goede optie voor het vinden van lange bewerkingen (bijv. volledige tabelscans). Als het komt door veel korte operaties, zal er niets verschijnen.

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. SQL Server 2016 Enterprise Edition Prestatievoordelen

  2. MySQL:Hoe kan ik het MySQL-rootwachtwoord opnieuw instellen of wijzigen?

  3. SQL Server In-Memory OLTP:de basis

  4. Wat ik graag zou willen zien in Amazon EC2 voor databasebeheer