问题描述
嗨,团队,
当在数据库中看到锁存器争用时,如何识别锁存器的类型以及如何继续进行进一步的故障排除?
此外,如果我们想从ash中找到闩锁类型,如何从ASH中找到它,我看到P1,提供了P @ 值,但只看到闩锁自由等待事件,如何识别这是哪个闩锁??
请你提供一些关于这个和一些手持的信息。
当在数据库中看到锁存器争用时,如何识别锁存器的类型以及如何继续进行进一步的故障排除?
此外,如果我们想从ash中找到闩锁类型,如何从ASH中找到它,我看到P1,提供了P @ 值,但只看到闩锁自由等待事件,如何识别这是哪个闩锁??
请你提供一些关于这个和一些手持的信息。
专家解答
首先要看的是:
“无闩锁” 是您整体响应时间的主要部分。如果我的应用程序需要5秒来响应,而其中0.01秒是 “闩锁免费”,那么为什么要浪费时间在那里。
让我们假设它是占主导地位的部分。如果您正在等待latch free,则其他人正在 “握住” 您想要的闩锁。所以前两件事要做:
1) 您还在等什么闩锁?
2) 谁拿着它
对于 (1),请检查您的AWR报告。有一个部分显示每个闩锁,以及发生了多少gets/miss/sleep。我看到的最常见的是 “共享池” 和 “库缓存”,这通常表示查询中的过度解析。
对于 (2),有一个视图v $ latchholder。你可以用Tanel的优秀剧本来品尝这个
https://blog.tanelpoder.com/files/scripts/latchprof.sql
推断 * 谁 * 如此咄咄逼人地抓住了那些闩锁。
“无闩锁” 是您整体响应时间的主要部分。如果我的应用程序需要5秒来响应,而其中0.01秒是 “闩锁免费”,那么为什么要浪费时间在那里。
让我们假设它是占主导地位的部分。如果您正在等待latch free,则其他人正在 “握住” 您想要的闩锁。所以前两件事要做:
1) 您还在等什么闩锁?
2) 谁拿着它
对于 (1),请检查您的AWR报告。有一个部分显示每个闩锁,以及发生了多少gets/miss/sleep。我看到的最常见的是 “共享池” 和 “库缓存”,这通常表示查询中的过度解析。
对于 (2),有一个视图v $ latchholder。你可以用Tanel的优秀剧本来品尝这个
https://blog.tanelpoder.com/files/scripts/latchprof.sql
推断 * 谁 * 如此咄咄逼人地抓住了那些闩锁。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。