sql >> Database teknologi >  >> RDS >> Oracle

Sådan kontrolleres Oracle-databasen for langvarige forespørgsler

Denne viser SQL, der i øjeblikket er "AKTIV":-

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
/

Dette viser låse. Nogle gange går det langsomt, men det er fordi det er blokeret og venter på en lås:

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
/

Dette er en god en til at finde lange operationer (f.eks. fuld tabelscanninger). Hvis det er på grund af mange korte operationer, vil der ikke dukke noget op.

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. Hvad er data og information og datamængder

  2. Ufølsomme unikke modelfelter i Django?

  3. Sådan installeres SQL Server på Ubuntu 18.04

  4. Opretter forbindelse til Postgresql i en docker-container udefra