oracle 白鳝 row cache lock,ROW CACHE LOCK导致数据库CPU高案例分析

近期整理案例,发现前不久同事反馈一个数据库服务器CPU居高不下,无法找到根因过来询问,详情如下:

EVENT COUNT(*)

---------------------------------------- ----------

row cache lock 1007

213

buffer busy waits 165

log file switch (checkpoint incomplete) 137

free buffer waits 114

db file async I/O submit 75

log file sync 73

db file sequential read 62

read by other session 36

log file parallel write 15

resmgr:cpu quantum 15

enq: TX - row lock contention 13

enq: HW - contention 9

direct path read 8

enq: SQ - contention 4

latch: undo global data 3

write complete waits 2

log file sequential read 1

null event 1

db file scattered read 1

Log archive I/O 1

LNS wait on SENDREQ 1

enq: US - contention 1

从ASH中看到,CPU高的时间段内,等待事件最多的为ROW CACHE LOCK,

TIME USER_ID SQL_ID EVENT P1

------------------------------ ---------- ------------- ---------------------------------------- ----------

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 c25ar03n0p5sz row cache lock 13

20200929 01:11:25 91 c25ar03n0p5sz row cache lock 13

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 c25ar03n0p5sz row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 c25ar03n0p5sz row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 11xs00r4qzb7n row cache lock 13

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

20200929 01:11:25 91 7265mcg5kwyc3 row cache lock 13

确认该时间段内的具体SQL,发现均存在SEQUENCE调用

SQL_ID COUNT(*)

------------- ----------

7265mcg5kwyc3 357

11xs00r4qzb7n 341

c25ar03n0p5sz 277

f9ym730zzf1s2 12

9dnygr7asqmy9 12

dksd9txy8vuk6 6

9qzwmgp034kx2 2

SQL> SELECT DISTINCT sql_id,

sql_text

FROM v$sql

WHERE sql_id IN ('dksd9txy8vuk6',

'11xs00r4qzb7n',

'9qzwmgp034kx2',

'9dnygr7asqmy9',

'7265mcg5kwyc3',

'c25ar03n0p5sz',

'f9ym730zzf1s2');

SQL_ID SQL_TEXT

------------- ------------------------------------------------------------------------------------------------------------------------

9qzwmgp034kx2 INSERT INTO opfqresultdata VALUES(OPFQRESULTDATA_SEQUENCE_ID.Nextval,:1 ,:2 ,:3 ,:4 ,:5 ,:6 ,:7 ,:8 )

f9ym730zzf1s2 select SUBSFLT_HISTORY_SEQUENCE_ID.nextval from dual

7265mcg5kwyc3 INSERT INTO pnrresultdata VALUES(PNRRESULTDATA_SEQUENCE_ID.NEXTVAL,:1 ,:2 ,:3 ,:4 ,:5 ,:6 ,:7 ,:8 ,:9 )

c25ar03n0p5sz INSERT INTO etresultdata VALUES(ETRESULTDATA_SEQUENCE_ID.Nextval,:1 ,:2 ,:3 ,:4 ,:5 ,:6 ,:7 ,:8 ,:9 ,:10 ,:11 )

9dnygr7asqmy9 select SUBSFLTREQUEST_SEQUENCE_ID.nextval from dual

11xs00r4qzb7n INSERT INTO unknowdata VALUES(UNKNOWDATA_SEQUENCE_ID.Nextval,:1 ,:2 ,:3 )

dksd9txy8vuk6 INSERT INTO fltresultdata VALUES(FLTRESULTDATA_SEQUENCE_ID.Nextval,:1 ,:2 ,:3 ,:4 ,:5 ,:6 ,:7 ,:8 ,:9 ,:10 ,:11 ,:12 ,:1

SQL> select DISTINCT P1

FROM

(SELECT to_char(SAMPLE_TIME,'YYYYMMDD hh24:mi:ss') time,

USER_ID,

SQL_ID,

EVENT,

P1

FROM dba_hist_active_sess_history

WHERE SAMPLE_TIME>to_date('20200929 01:00:00','YYYYMMDD hh24:mi:ss')

AND SAMPLE_TIME

AND EVENT = 'row cache lock');

P1

----------

13 --正是dc_sequences

SQL> select parameter,gets,getmisses,MODIFICATIONS from v$rowcache where cache#=13;

PARAMETER GETS GETMISSES MODIFICATIONS

-------------------------------- ---------- ---------- -------------

dc_sequences 766929021 5065 766929020

发现此sequence中的cache size均为0,出现row cache lock与cpu高便不足为奇

8e1b78ae98b18b800e03fd938c6b9a40.png

将频繁调用的sequence cache size调整至500后,等待与cpu高的现象随之解决,不再复现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DBA日记 序 3 前言之DBA的性格 7 前言之我的成长之路 11 第一部(1) 5月11日 20 第一部 (2) 5月12日 22 第一部 (3) 5月13日 24 第一部 (4) 5月14日 26 第一部 (5) 5月15日 28 第一部 (6) 5月18日 31 第一部 (7) 5月19日 南京 33 第一部(8) 5月20日 临晨的邮件通知短信 37 第一部(9) 5月22日 ODS系统和RAC 39 第一部(10) 5月23日 实时ODS 41 第一部 (11) 5月24日 重返沈阳 44 第一部(12) 5月25日 46 第一部(13) 5月26 优化方案 48 第一部(14) 5月27日 无奈 50 第一部(15) 5月29 突破困局 52 第一部(16) 5月31日 实施优化 54 第一部(17) 6月6日 实施优化 56 第一部(18) 6月7日 突发事件 58 第一部(19) 6月10日 性能问题 60 第一部(20) 6月11日 例会 62 第一部(21) 6月12日 64 第一部(22) 6月13日 演戏 66 第一部(23) 6月14日 转机 68 第一部(24) 6月14日之二 cache buffer chains 72 第一部(25) 6月15日 青岛 74 第一部(26)之二 6月15日 青岛 78 第一部(27) 6月16日 青岛机场 80 第一部 (28) 6月17日 完美的效果 85 第一部 (29) 6月18日 准备收工 88 第一部(30) 6月19日 突然事件 90 第一部(31) 7月20日 重回沈阳 92 第一部(32) 7月21日 课堂风波 95 第一部(33) 7月23 世博园一日游和心想事成 98 第一部 7月23日夜 漫长的一夜 (第一部完) 101 后记1 结束语 108 后记2 优化项目的流程之方案 109

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值