-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwhats_going_on.sql
55 lines (51 loc) · 1.91 KB
/
whats_going_on.sql
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
44
45
46
47
48
49
50
51
52
53
54
55
---
--- How many users are waiting on what events right now...
--- http://blog.tanelpoder.com/2008/08/07/the-simplest-query-for-checking-whats-happening-in-a-database/
---
SELECT event, state, COUNT (*)
FROM v$session_wait
GROUP BY event, state
ORDER BY 3 DESC
---
--- As above, but some decodes to make the output clearer
--- 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_wait
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
---
--- As above, but excluding background processes and idle sessions
--- 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
---
--- What SQL is being executed right now?
--- http://blog.tanelpoder.com/2008/08/07/the-simplest-query-for-checking-whats-happening-in-a-database/
---
SELECT sql_id, COUNT (*)
FROM v$session
WHERE status = 'ACTIVE'
GROUP BY sql_id
ORDER BY 2 DESC;
---
--- Drill down
--- http://blog.tanelpoder.com/2008/08/07/the-simplest-query-for-checking-whats-happening-in-a-database/
---
SELECT sql_text, users_executing
FROM v$sql
WHERE sql_id = '&sql_id'