oracle 19c普通用户查询字典表all_views时等待row cache mutex事件

近日,一19c oracle rac测试环境,初始反馈是sys用户查询很快,cdb用户如c##any查询系统表如all_tables很慢,至少相差几十倍、有时候直接半天超时还没执行完,经查一开始发现在等待gc cr multi block mixed事件,该事件据官方解释,该事件时提升性能用的,如下:

Oracle GC CR Multi Block Mixed 事件是一种用于提高Oracle数据库性能和吞吐量的重要性能因素,它帮助加快多个进程在同一时间段内存入和取出数据库块(block)的过程,以及多个块之间相互组合的过程。

GC CR Multi Block Mixed 事件可以有效的利用完整的数据库缓存服务。当多个进程在同一时间段访问数据库时,GC CR Multi Block Mixed 事件可以帮助加速一个进程从数据库中取出一个块,并且另一个进程可以放入另一个块,同时这两个进程可以相互组合,可以提高多个进程读写数据库效率。

此外,GC CR Multi Block Mixed 事件可以使用复杂性来提高对多个块之间的这种组合操作。当运行Oracle数据库中的程序时,它将获取多个块,将其复合成一个整体,以满足特定的要求,可以在更少的时间和更少的缓存使用量完成这种操作,以节省时间和空间。

最后,GC CR Multi Block Mixed 事件可以改进用于访问数据库的性能,这对于许多在线应用程序和使用弹性数据库特性的应用程序特别重要。这种事件还可以改善实时平衡性和数据库备份操作,帮助管理员维护数据库。

后来查发现是select xxx from all_tables union all select xxx from all_views,卡在all_views上,此时一直在等待row cache mutex事件事件。如下:

 

 需要打补丁解决,参见https://www.modb.pro/db/65295。

注:确实也有个别案例遇到gc cr multi block mixed是top等待事件的情况,但没有响应。

posted @ 2024-03-06 09:56  zhjh256  阅读(106)  评论(0编辑  收藏  举报