-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDiagnoseWaitTimes.sql
More file actions
43 lines (40 loc) · 1.15 KB
/
DiagnoseWaitTimes.sql
File metadata and controls
43 lines (40 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
SELECT *
FROM v$system_event
ORDER BY total_waits * time_waited DESC;
SELECT vs.SID, vs.event,vw.event wait_EVENT, vs.total_waits, vs.total_timeouts, vs.average_wait, vs.max_wait, vw.wait_class#, state
FROM v$session_event vs , v$session_wait vw
WHERE vs.WAIT_CLASS_ID = vw.WAIT_CLASS_ID
ORDER BY total_waits * time_waited DESC;
--buffer waits http://www.morganslibrary.org/reference/wait_events.html
SELECT *
FROM (
SELECT owner, object_name, subobject_name, object_type, tablespace_name TSNAME, value
FROM gv$segment_statistics
WHERE statistic_name='buffer busy waits'
ORDER BY value DESC)
WHERE ROWNUM < 11;
--event status
--http://blog.tanelpoder.com/2008/08/07/the-simplest-query-for-checking-whats-happening-in-a-database/
select
count(*),
CASE WHEN state != 'WAITING' THEN 'WORKING'
ELSE 'WAITING'
END AS state,
CASE WHEN state != 'WAITING' THEN 'On CPU / runqueue'
ELSE event
END AS sw_event
FROM
v$session
WHERE
type = 'USER'
AND status = 'ACTIVE'
GROUP BY
CASE WHEN state != 'WAITING' THEN 'WORKING'
ELSE 'WAITING'
END,
CASE WHEN state != 'WAITING' THEN 'On CPU / runqueue'
ELSE event
END
ORDER BY
1 DESC, 2 DESC
/