Их ачааллаж буй sql -ийг олох


#1

Enterprise Manager дээрээс advisor-уудын тусламжтай харж болох хэдий ч комманд ашиглан хэрхэн өндөр ачааллаж буй query-нуудыг харах талаар сонирхоё. ASH report нь илүү богино хугацааны нарийвчлалтайгаар мэдээллийг v$active_session_history -д хадгалж байдаг.

SQL> select sql_id, count(*), round(count(*)/sum(count(*)) over(), 2) pctload 
from v$active_session_history 
where sample_time>sysdate-1 and session_type <> 'BACKGROUND' 
group by sql_id 
order by count(*) desc

Дээрхи үр дүнгээс sql_id ашиглан ямар query ажиллаж байгаг харах.

SQL> select sql_text from v$sql where sql_id='d5xxfguffwpxh';

SQL_TEXT
--------------------------------------------------------------------------------
select end_time, wait_class#,	     (time_waited_fg)/(intsize_csec/100),
 (time_waited)/(intsize_csec/100), 0 from v$waitclassmetric union all select fg.
end_time, -1, fg.value, bg.value, dbtime.value from v$sysmetric fg, v$sysmetric
bg, v$sysmetric dbtime where bg.metric_name = 'Background CPU Usage Per Sec' and
 bg.group_id = 2 and fg.metric_name = 'CPU Usage Per Sec' and fg.group_id = 2 an
d dbtime.metric_name = 'Average Active Sessions' and dbtime.group_id = 2 and bg.
end_time = fg.end_time and fg.end_time = dbtime.end_time order by end_time,wait_
class#

SQL>