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
56
57
58
59
60
61
62
63
64
65
|
--发现那些SQL运行了大量的PARSE
select
sql_text, parse_calls, executions
from
v$sqlarea
order
by
parse_calls
desc
;
--SYS的总的PARSE情况
select
name
, value
from
v$sysstat
where
name
like
'parse count%'
;
--CPU空间及繁忙情况
select
*
from
v$osstat;
--查看每个Session的CPU利用情况:
select
ss.sid, se.command, ss.value CPU, se.username, se.program
from
v$sesstat ss, v$session se
where
ss.statistic#
in
(
select
statistic#
from
v$statname
where
name
=
'CPU used by this session'
)
and
se.sid = ss.sid
and
ss.sid > 6
order
by
CPU
desc
;
--比较一下哪个session的CPU使用时间最多,然后查看该Session的具体情况:
select
s.sid, s.event, s.MACHINE, s.OSUSER, s.wait_time, w.seq#, q.sql_text
from
v$session_wait w, v$session s, v$process p, v$sqlarea q
where
s.paddr = p.addr
and
s.sid = &p
and
s.sql_address = q.address;
--占用CPU最高的10个Session及其SQL语句
select
s.sid,
w.wait_time,
w.seconds_in_wait,
w.state,
w.wait_time_micro,
w.time_remaining_micro,
w.time_since_last_wait_micro,
p.USERNAME,
status,
server,
schemaname,
osuser,
machine,
p.terminal,
p.program,
logon_time,
w.event,
w.wait_class,
tracefile,
sql_text,
last_active_time
from
v$session_wait w, v$session s, v$process p, v$sqlarea q
where
s.paddr = p.addr
and
s.sid
in
(
select
sid
from
(
select
ss.sid
from
v$sesstat ss, v$session se
where
ss.statistic#
in
(
select
statistic#
from
v$statname
where
name
=
'CPU used by this session'
)
and
se.sid = ss.sid
and
ss.sid > 6
order
by
ss.value
desc
)
where
rownum < 11)
and
s.sql_address = q.address;
|