Открих, че това SQL изявление е полезно място за начало (съжалявам, че не мога да припиша това на оригиналния автор; намерих го някъде в интернет):
SELECT * FROM
(SELECT
sql_fulltext,
sql_id,
elapsed_time,
child_number,
disk_reads,
executions,
first_load_time,
last_load_time
FROM v$sql
ORDER BY elapsed_time DESC)
WHERE ROWNUM < 10
/
Това намира най-добрите SQL изрази, които в момента се съхраняват в SQL кеша, подредени по изминало време. Изявленията ще изчезнат от кеша с течение на времето, така че може да не е добре да се опитвате да диагностицирате снощната групова работа, когато започнете работа в обяд.
Можете също да опитате да подреждате по disk_reads и изпълнения. Изпълненията са полезни, защото някои лоши приложения изпращат един и същ SQL израз твърде много пъти. Този SQL предполага, че използвате правилно променливите за свързване.
След това можете да вземете sql_id
и child_number
на изявление и ги нахранете в това бебе:-
SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('&sql_id', &child));
Това показва действителния план от SQL кеша и пълния текст на SQL.