OracleCPU使用情况查询

本文提供了多种SQL性能调优的方法,包括如何查找消耗大量资源的SQL语句、监控系统解析次数、检查会话CPU利用率等。通过这些实用的SQL查询语句,可以有效地帮助开发者定位并解决数据库性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 
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;

转载于:https://www.cnblogs.com/lcword/p/8017071.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值