暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 闩锁事件

askTom 2016-03-12
234

问题描述

当我监视我的会话时,我发现一些锁存事件,如锁存缓存缓冲链、锁存游标引脚等等。

你能给出一个答案吗?真的是降低了数据库的性能吗?

所有锁存事件是否对数据库有帮助?

很多时候,我发现锁存缓存缓冲链真的降低了性能?

请给你关于锁扣的建议。

专家解答

在一个“完美”的系统中,我们执行的每一个任务都会用到CPU上,尽可能高效地使用CPU ,然后就完成了。

这就是我们想去的地方,但是很多事情都会阻止我们,例如,在CPU使用数据之前,它必须从内存中加载。但在从内存加载之前,必须从磁盘加载,等等。在所有这些情况下,在最终让CPU完成工作之前,我们都需要等待发生一些事情。

因此,完成一项任务所需的时间为:

时间=工作时间(在CPU上) +等待完成某些事情的时间,然后才能使用CPU。

因此,在大多数情况下,我们的目标是减少等待CPU以外的东西的时间。等待闩锁就是一个例子。“缓存缓冲链”锁存器是指有很多人在争夺内存中的一个公共位置,因此必须等待其他人完成。一个常见的原因是查询运行不善,这些查询对缓冲区高速缓存中的一小块进行了大量的重复访问(即嵌套循环)。

在这里写了一篇不错的博客文章。

https://www.pythian.com/blog/tuning-latch-contention-cache-buffers-chain-latches/

因此,在性能调整方面

a)确保闩锁事件是一个值得处理的领域-如果它占了您总任务时间的0.1% ,那么为什么还要费心,但如果它占了您总任务时间的30% ,那么是的,我们需要研究它。

b)然后查找执行大量重复缓存访问的查询(一个很好的地方是v$sql中非常高的缓冲区_gets ).

希望这个能帮上忙。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论