love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

11g 新特性之–query result cache(3)

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: 11g 新特性之–query result cache(3)

前面2篇文章分别讲了query cache的使用以及探秘其内存结构等等,最后一篇将讲讲
11gR2中,query cache的特别之处,详见下面的实验。

从上面的实验,我们可以看出11gR2 比11gR1 多了其中一点就是这里,那就是在create table的时候,
我们可以指定是否对该表启用query cache特性,create table的语法如下:

当然,既然create table有了新的语法,那么必然同时也会增加alter table的语法了,请看测试。

关于字段RESULT_CACHE其中有3个属性,分别为DEFAULT,FORCE和MANUAL,大家可以参考11.2的官方文档。
这里有点需要说明的是,必然当表结构或定义发变化了,那么query cache 缓存的信息都将被清除,如下例子。

从上面的信息来看,我想已经完全可以说明问题了,如何有人说这还不能说明问题的话,那请看下面:

下面我们修改表ht01的表结构,然后再次dump 看看结果如何。

从上面可以看出多了2条信息,24BE19A0。 从上面的实验来看,我们可以推断出oracle这里应该是这样管理的,
那就是即使表结构定义发生改变了,那么原来cache的信息仍然存在query cache中,当然,当cache不够用了,
也是会被清除掉的,至于说oracle这里是如何去判断如何不去选择旧的cache信息,那么我就不得而知了。
如果谁研究的更为透彻,记得告诉我,谢谢!

到最后,大家可能会想query cache的工作原理是什么?sql的结果集缓存超过多少或者说在使用了该特性
的情况下,如何通过算法去检索client所需要的信息呢?这些目前还都是未知数。

One Response to “11g 新特性之–query result cache(3)”

  1. Meghan Wiseley Says:

    Saved like a favourite, I truly like your weblog!

Leave a Reply

You must be logged in to post a comment.