Questo mostra SQL che è attualmente "attivo": -
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
/
Questa mostra serrature. A volte le cose stanno andando lentamente, ma è perché è bloccato in attesa di una serratura:
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
/
questo è un buon uno per la ricerca di operazioni lunghe (ad esempio le scansioni di tabella completa). Se è a causa di molte brevi operazioni, non verrà visualizzato nulla.
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
/
fonte
2009-03-09 05:49:28
Io davvero non capisco come questo non è "una vera domanda" –
Questa è la domanda falso più utile che abbia mai visto :) – FGreg
Questo post si presenta come # 1 quando si cerca su google "oracle slow running query". Che ne dici di riaprire la domanda per consentire a più risposte di rimanere aggiornate? – andersand