Oracle等待事件管理与分析-cache buff chains一例

今日对数据库巡检发现 ,数据出现大量的cbc等待事件。(查询cbc保护的对象)

set lines 120

col owner for a10

col object_name for a30

col object_type for a10

select  distinct owner, object_name, object_type,file#, dbablk

from x$bh a, dba_objects b, v$session c

where a.hladdr = c.P1RAW

and b.DATA_OBJECT_ID = a.obj

and p1raw= '0700000F3B5C98E8'

and c.event like '%latch: cache buffers chains%' order by object_type;

查询其真实的执行计划:

SQL> set pagesize 100000
SQL> select * from table(dbms_xplan.display_cursor('69ww6fdppan6f'));
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID  69ww6fdppan6f, child number 0
-------------------------------------
select 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                        | R
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                             |
|*  1 |  TABLE ACCESS BY LOCAL INDEX ROWID     | TCC_EONTDD       |
|   2 |   NESTED LOOPS                         |                             |
|   3 |    MERGE JOIN CARTESIAN                |                             |
|   4 |     PARTITION RANGE SINGLE             |                             |
|   5 |      TABLE ACCESS BY LOCAL INDEX ROWID | TCC_EUTRANCELL              |
|*  6 |       INDEX RANGE SCAN                 | IDXTCANCELL_1         |
|   7 |     BUFFER SORT                        |                             |
|   8 |      PARTITION RANGE SINGLE            |                             |
|   9 |       TABLE ACCESS BY LOCAL INDEX ROWID| TCC_CELL              |
|* 10 |        INDEX RANGE SCAN                | IDXTCANCELL_1         |
|  11 |    PARTITION RANGE SINGLE              |                             |
|* 12 |     INDEX RANGE SCAN                   | IDX_1_TCC_ETIONTDD |
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(("A"."VENDOR_ID"=8 AND "A"."M_INT_ID"="M"."INT_ID" AND "A"."N_INT_
   6 - access("M"."SCA_STT_TIME"=TO_DATE(' 2020-05-24 00:00:00', 'syyyy-mm-dd
  10 - access("N"."SC_STT_TIME"=TO_DATE(' 2020-05-24 00:00:00', 'syyyy-mm-dd
  12 - access("A"."SCA_STT_TIME"=TO_DATE(' 2020-05-24 00:00:00', 'syyyy-mm-dd
35 rows selected

SQL> 

真实执行计划产生了MERGE JOIN CARTESIAN    笛卡尔积连接,导致执行消耗大量资源,占用cbc

 

 

1 索引唯一扫描 , 从索引的根开始到访问表块都是共享的CBC ,index unique scan

2 index range scan 还是根枝为共享的CBC, 叶块和表块仍然为独占模式.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库中的等待事件是指在数据库运行时,由于某些资源的限制,导致进程需要等待事件。以下是常见的33个Oracle等待事件: 1. latch free - 等待获取latch资源的进程。 2. CPU time - 等待CPU处理时间。 3. log file sync - 等待日志文件同步完成。 4. buffer busy waits - 等待访问繁忙的数据缓冲区。 5. db file sequential read - 等待从磁盘读取数据文件的读取操作完成。 6. db file scattered read - 等待从磁盘读取散乱的数据块的读取操作完成。 7. log file parallel write - 等待并行写入日志文件的操作完成。 8. direct path read - 等待直接路径读取完成。 9. SQL*Net message from client - 等待来自客户端的SQL*Net消息。 10. log buffer space - 等待空闲的日志缓冲区空间。 11. control file parallel write - 等待并行写入控制文件的操作完成。 12. db file parallel write - 等待并行写入数据文件的操作完成。 13. enqueue - 等待获取enqueue资源的操作完成。 14. db file async I/O submit - 等待异步I/O提交的操作完成。 15. db file async I/O complete - 等待异步I/O完成的操作。 16. direct path write - 等待直接路径写入操作完成。 17. SQL*Net more data to client - 等待传输更多SQL*Net数据给客户端。 18. redo log space requests - 等待空闲的重做日志空间。 19. buffer deadlock - 等待缓冲区死锁解除。 20. db file checkpoint completion - 等待数据文件检查点完成。 21. db file parallel read - 等待并行读取数据文件的操作。 22. latch: cache buffers chains - 等待获取缓冲区链锁的进程。 23. read by other session - 等待其他会话读取数据。 24. control file sequential read - 等待从控制文件读取数据。 25. ASM background process - 等待ASM后台进程操作完成。 26. latch: In-Memory undo latch - 等待获取In-Memory undo latch锁的进程。 27. cell single block physical read - 等待从Cell服务器读取单个块的物理读取操作完成。 28. library cache: mutex X - 等待获取库缓存互斥锁的进程。 29. PX Deq: Table Q Normal - 等待并行执行查询操作。 30. direct path read temp - 等待从临时文件读取数据的直接路径读取操作完成。 31. PX Deq Execution Msg - 等待并行执行消息处理。 32. PX Deq Credit: send blkd - 等待并行执行接收处理。 33. PX Deq: reap credit - 等待并行执行回收资源的操作完成。 以上是常见的33个Oracle等待事件,了解这些事件对于排查和优化数据库性能非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值