概述
在以前的版本当中, oracle数据库不能将用户查询的大表数据缓存到buffer cache当中, 因为缓存大表的时候会将数据库中有用的数据从内存中给置换出来, 这样的就不能提高数据库的效率了。
但是从12.1.0.2版本开始,如果数据库的实例的内存足够大,大到可以讲数据库所有的数据都能够缓存所有的数据库的数据的情况时,数据库开启全库缓存,这样数据库将所有的数据缓存到buffer cache当中。 将所有的数据都缓存到内存当中的时候,可以提高数据库的性能。
可以通过下面的步骤将数据库开启全库缓存模式。
ALTER DATABASE FORCE FULL DATABASE CACHING;
该命令必须在数据库启动到mount状态时,执行。
同时在关闭数据库,启动到mount状态时,最好先触发checkpoint然后正常的关闭数据库。
在开启上述的模式的情况下, 数据库认为内存已经可以满足将数据库上的所有的数据都缓存到buffer cache上了。
可以通过下面的命令查询数据库是否开启了强制全库缓存模式
Select force_full_db_caching from v$database;
开启全库缓存模式下关于大字段缓存问题
在默认的数据库缓存模式下,Nocache lobs这样的大字段类型是不能被缓存到buffer cache当中的。 但是开启全库缓存模式的情况下, nocache lobs这样的大字段也是可以缓存到buffer cache当中。 同理 其他类型的lob字段不管是普通的还是 securefiles lob还是basicfiles
lob都是可以缓存到buffer cache当中的。
我们知道普通情况下,buffer cache当中的数据是只要读才能缓存到数
最后
以上就是闪闪大地为你收集整理的oracle 查询缓存是否开启,数据库强制的开启全库缓存模式的全部内容,希望文章能够帮你解决oracle 查询缓存是否开启,数据库强制的开启全库缓存模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复