数据库有时会遇到大量的进程发生'enq: ss - contention'等待,持续5到10分钟,然后自动消失。从字面上看,'SS'是Sort Segment:

select * from v$lock_type where type='SS'

TYPE       NAME   ID1_TAG     ID2_TAG   IS_USER DESCRIPTION

--------------------------- ---------------------------------- -------------------------- --------------------
SS    Sort Segment   tablespace #   dba    NO  Ensures that sort segments created during parallel DML operations aren't prematurely cleaned up

为何大量的进程需要等待Sort Segment enqueue呢?

从ASH的信息看,Sort Segment enqueue的持有者1581也是一个用户进程,他在等待'DFS lock handle'

5931 1 WAITING 1581 2 JDBC Thin Client dfcdxr0v3hn6n DFS lock handle 1128857605 14 2 26522266 147 1370406 N N

1674 1 WAITING 5931 1 JDBC Thin Client dfcdxr0v3hn6n enq: SS - contention 1397948422 6 2 142364 25 147677 N N
1772 1 WAITING 5931 1 JDBC Thin Client dfcdxr0v3hn6n enq: SS - contention 1397948422 6 2 140883 131 3809055 N N
1852 1 WAITING 5931 1 JDBC Thin Client dfcdxr0v3hn6n enq: SS - contention 1397948422 6 2 19434636 102 1265728 N N

<=========session 5931 是阻塞者,在等 'DFS lock handle','DFS lock handle'的持有者是节点2上的session 1581 .

从DFS lock handle的P1和P2可以看出他为何申请DFS lock handle,
<========DFS lock handle P1=1128857605 P2=14 P3=2

P1 DEC1128857605 =>HEX 43490005 <======CI enqueue
P2=14 <===========Release unused space of the sort segments. Handled by SMON

这是一个Cross Instance(CI)请求,请求的目的是释放未使用的sort segments,也就是清理TEMP表空间。

节点2上的session 1581 是DBW0:

2016-12-07 16:27:27 db file parallel write 1581 2 WAITING oracle@gx-db02-p780 (DBW0)

所以,节点1上的应用进程在等节点2上的DBW0清理TEMP表空间。

wait a minute,为何节点1的进程要等节点2的DBW0,他们为什么不请求本地的DBW0?

在RAC中,TEMP表空间是在各个节点间共享的(当然,其他所有的表空间都一样),但是TEMP表空间会在各个节点有缓存,可以通过以下视图查询到TEMP在各个节点的使用情况:

select inst_id, tablespace_name, blocks_cached, blocks_used from gv$temp_extent_pool;

如果一个节点缓存的TEMP blocks耗尽,会请求另一个节点释放一些未使用的TEMP给他用,释放的过程中会较长时间等待enq: ss - contention,这是一个正常的行为。

为了避免申请临时空间时较长的等待,可以通过手工方式释放各个节点的cached block。
ALTER SESSION SET events 'immediate trace name drop_segments level tablespace_number+1'; 

转载于:https://www.cnblogs.com/DataArt/p/10018851.html

奇怪的等待事件“enq: ss - contention”相关推荐

  1. [20161208]等待事件enq: HW - contention

    [20161208]等待事件enq HW - contention.txt --别人的系统遭遇enq: HW - contention,自己诊断遇到一点点小误区,实际上我看看我原来的帖子就知道问题在那 ...

  2. 事务上的等待事件 —— enq: TM - contention

    执行DML期间,为防止对与DML相关的对象进行修改,执行DML的进程必须对该表获得TM锁.若在获得TM锁的过程中发生争用,则等待enq: HW - contention 事件. SQL> sel ...

  3. 等待事件 enq:TX - row lock contention分析与解决

    6月30日,数据库发生了大量锁表.大概持续1小时,并且越锁越多.后来通过业务人员停掉程序,并kill掉会话后解决. 几天后再EM上查看CPU占用: CPU发生了明显等待. 主要是由于enq:TX - ...

  4. 等待事件enq TX row lock contention分析

    在Oracle数据库性能报告AWRRPT分析时,发现top 5等待事件第一位的是enq: TX - row lock contention.这个等待事件消耗了绝大多数的CPU资源,导致系统整理性能下降 ...

  5. 【故障处理】队列等待之enq IV - contention案例

    [故障处理]队列等待之enq IV -  contention案例 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也 ...

  6. oracle job enq tx,【学习笔记】Oracle等待事件 enq:TX–allocate ITL entry产生原因和解决办法...

    天萃荷净 运维DBA反映Oracle数据库出现enq:TX–allocate ITL entry等待事件,结合案例分析该等待事件产生原因和解决办法 今天在分析一份awr中发现了较为明显的enq: TX ...

  7. 一则事件enq: IV - contention

    环境:exadata 双节点,oracle版本12.1.0.2 数据库服务器上多个实例出现enq: IV - contention等待事件,发现存在相关bug In this Document   S ...

  8. 等待事件之enq: HW - contention

    等待事件之enq: HW - contention SELECT *   FROM V$EVENT_NAME  WHERE NAME  IN        ('enq: HW - contention ...

  9. oracle cf enqueue,oracle等待事件之enq: CF – contention

    Enqueue 是一种保护共享资源的锁定机制,避免因并发操作而损坏数据,Enqueue 采用排队机制,即 FIFO(先进先出)来控制资源的使用.在任何需要读取控制文件的动作时,就会发生等待事件enq: ...

  10. 【故障解决】enq: PS - contention

    [故障解决]enq: PS - contention [故障解决]enq: PS - contention 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读和注意事项 各位技术爱好 ...

最新文章

  1. Redis 笔记(15)— 管道 pipeline(客户端将批量命令打包发送用来节省网络开销)
  2. JavaWeb学习笔记——DOM4J
  3. nagios使用check_mysql监控mysql
  4. 程序员第一次相亲,因请女方吃肯德基而被怒删!
  5. CSP认证201312-5 I’m stuck![C++题解]:dfs、两次dfs
  6. 目标检测之RCNN,SPP-NET,Fast-RCNN,Faster-RCNN
  7. jqGrid如何设置jqGrid第一次初始化时不加载任何数据?实现方法!
  8. javascript异步_JavaScript异步并在循环中等待
  9. 牛客网SQL篇刷题篇(3-10)
  10. Android 滑动菜单框架--SwipeMenuListView框架完全解析
  11. war压缩命令_BetterZip mac版(超强解压缩软件)
  12. 三星Galaxy S22系列曝光:首批搭载高通骁龙895!
  13. 【数据结构笔记19】File Transfer的C语言实现,集合的简化表示,按秩归并,路径压缩
  14. css常用鼠标指针形状代码
  15. 十款大名鼎鼎的开源软件
  16. atitit  opencv apiattilax总结 约500个函数 .xlsx
  17. 小白学测试入门之测试分析方法
  18. 社交礼仪之握手礼仪(转)
  19. OpenGL中glRotatef()函数究竟对矩阵做了什么
  20. 南怀瑾:如何静坐(附视频)

热门文章

  1. 【渝粤教育】广东开放大学 java程序设计基础 形成性考核 (39)
  2. 基于频繁增长树(FP-树)的频繁项集挖掘算法实现
  3. Maxent Source code reading experience
  4. Python进阶(四)Python中的异常
  5. PyCharm 配置 Git 教程
  6. 451 Sort Characters By Frequency 根据字符出现频率排序
  7. MySQL查询当天、本周,本月,上一个月的数据
  8. [转]VS2005中的代码视图显示行数
  9. [转]phpmyadmin安装使用
  10. 如何深入浅出地讲解麦克斯韦方程组