【问题标题】:Oracle result cache behaviourOracle 结果缓存行为
【发布时间】:2014-05-13 18:10:03
【问题描述】:

Oracle 默认缓存查询结果和函数结果。

我在 AutoTrace 实用程序中注意到了这一点,第一次执行时物理读取量很大,但从下一次执行开始,它会急剧减少。

查询结果缓存函数结果缓存重要吗?

有人可以帮助更好地理解这一点。

【问题讨论】:

  • 物理读减少与缓冲区缓存有关;你在混淆术语吗?
  • @AlexPoole 我真的不知道怎么做,你能简单介绍一下吗?
  • 您最好从文档开始; buffer cachequery and function result caches。这些来自性能调整指南,应该有助于解释它们的重要性。
  • @AlexPoole,缓冲区缓存如何失效,我尝试重新启动服务器,更新物理表。但我仍然注意到物理读取为 0。
  • Oracle 不“默认”缓存查询结果或函数结果。它会自动缓存从磁盘读取的块,这就是提高性能的原因。这通常就足够了,但在某些情况下,您可能还希望缓存整个查询或函数调用。

标签: sql performance oracle oracle11g


【解决方案1】:

这很简单:当您有查询结果缓存时,查询很可能不会再次执行 - 结果将从该缓存中提供。如果没有该功能,Oracle 将对更昂贵的缓存数据(缓冲区缓存)进行查询。查询结果缓存也可以在客户端实现,甚至可以消除到服务器的往返。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多