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

Oracle 缓存争用

ASKTOM 2019-09-26
137

问题描述

嗨,汤姆
我们有一个关于11.2g中结果缓存行为的问题,这将我们的办公室分开,我们希望您能帮助我们。我们在文档中找不到明确的答案。

问题是,从查询A写入结果缓存是否会导致查询B的争用 (enq: RC-result cache: 争用),该争用可以从/写入结果缓存。
在我们的例子中,这些查询根本不使用相同的表。

换句话说,更新结果缓存会锁定整个结果缓存或仅锁定结果缓存的相关部分。

谢谢。

专家解答

在11.2中,我们有一个单个RC锁存器,因此 * 更新 * 结果缓存通常会阻止其他也希望同时更新结果缓存的操作。

对于从缓存中读取,可以在共享模式下获得锁存器,因此,除非您引用的是 * 相同 * 缓存对象,否则读取器和编写器可以共存。(在情况不佳的11.1情况并非如此)

许多人将结果缓存视为 “嘿,让我们将其添加到我们拥有的每个查询中”。这样做通常是一个坏主意 :-) 它的目标是查询

-反对不会快速变化的表格,
-执行时间比不缓存的时间大得多


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论