enq: sq – contention 等待事件

 

ENQUEUE SQ的使用

 

当用户的SQL触发ORACLE需要填充或初始化SEQUENCE CACHE序列缓存时需要申请该SQ Enqueue 以便保护sequence的高水位,SEQUENCE CACHE以KGL sequence object形式存在,其通过查询row cache字典缓存数据中的元数据而获得填充,例如一个SELECT会递归地访问字典表。

 

减少该ENQUEUE SQ的争用

 

  • shared pool空间的不足可能直接导致该SQ ENQUEUE的争用,因为shared pool的空间不足可能导致sequence元数据被频繁刷出共享池。
  • 用户可以尝试使用dbms_shared_pool.keep()来保持该sequence保存在shared pool中
  • 可以为SEQUENCE增加 cache参数,由此减少填充该KGL对象的次数,则同样的申请ENQUEUE的次数会减少

 

ID1/ID2

ID1 代表对应的sequence的object_id , ID2总是0

 

 

如果自己搞不定可以找诗檀软件专业ORACLE数据库优化团队成员帮您恢复!

 

诗檀软件专业数据库优化团队

 

服务热线 : 13764045638   QQ号:47079569    邮箱:service@parnassusdata.com

沪ICP备14014813号-2

沪公网安备 31010802001379号