众所周知,内存的访问速度远远高于磁盘,把经常使用的数据存放于内存中来提高检索速度已不是什么新鲜事了。Cache 是内存中的一片区域,也叫缓存,如今关系型数据库正是利用这一种重要机制,使得访问数据库的性能突飞猛进。
Result Cache简述
数据库在构建一个SQL查询结果时,不仅需要在访问数据上消耗时间,数据的排序、聚合以及连接操作也会消耗一部分时间。对此Oracle 在11g R1版本中引入了Result Cache(结果集缓存),目的就是将查询结果直接放入内存中,节省构建结果集所花费的时间和资源。引擎可以直接返回结果,而不必在缓存中读取数据.
我们可以把SQL执行概括为三个阶段:
1.从存储获取数据到内存(对于尚未在缓存中的数据)
2.对缓存数据集进行筛选
3.返回结果集给客户端
Result Cache在启用的情况下,不仅会把结果集返回给客户端,而且还会把结果集缓存在Shared Pool特定的一块区域内。当任何客户端执行类似SQL返回相同结果时,Oracle会跳过1和2直接从Result Cache中返回结果,大大提高了性能。
Res