对于同样的操作,如果能在多个process或者session间共享结果,对于性能优化自然是非常有帮助的。
|
|
|||
那么,除了能共享SQL和执行计划,还能共享什么?直接共享SQL执行后的结果,使得相同或者部分相同的SQL语句甚至只需要执行一次,以后再次执行时就直接得到结果?没错,Oracle11g的新特性Server Result Cache就能提供这样功能。Oracle在白皮书上宣布,对于读频繁的系统,通过该特性,甚至有可能提升系统性能200%,对于大量报表的数据仓库项目来说,这个特性应该是一个不错的消息。
Server Result Cache通过在SGA中分配一个缓冲区来保存查询结果,Oracle引入了一个新的初始化参数来控制这个cache的大小: result_cache_max_size.可以在system、session、table或者语句级别来设置cache的使用。在语句级可以使用一个新的hint来控制是否缓存查询结果。另外,Oracle还提供了一个新的PL/SQL用来监控和管理Server Result Cache,比如可以清空整个cache的内容或者清空某个查询的结果,也可以生成cache的使用报告等。
既然使用了cache,自然会有cache查找和cache数据清除算法的问题。估计查找还会是通过hash算法,这样还需要引入几个相关的latch.Cache中的数据,也应该是通过LRU或者类似LRU的算法来管理其生命期。
Server Result Cache不仅仅能缓存整个查询的结果,也能缓存查询中某部分操作的结果,比如缓存一次排序的结果,就可以避免再次执行时的排序操作。对于一些比较耗资源的查询操作,缓存结果应该能很好的提升性能。不知道11g对于该特性的引入,会不会像Oracle7引入共享池一样,极大的改善系统性能呢?我们只好拭目以待更进一步的测试了。
除了Server端引入Result Cache,Oracle11g另外一个值得期待的特性就是Client端cache机制的引入。通过OCI接口,在Client端也可以缓存查询结果。典型的场景就是我们在应用服务器端缓存查询结果,这样在前端执行该查询时,甚至不需要到数据库中去执行该查询。客户端结果缓存在OCI进程中,可以被该进程中的多个session或者线程共享。客户端缓存机制通过一个新的初始化参数来控制:client_result_cache_size,当该参数大于 0时,该特性被启用。同样的,该特性也可以在system、session、table或者语句级来设置。通过在服务端设置参数而不是客户端设置,可以集中的管理该特性,但是也可以在各个客户端单独进行设置,客户端的设置将覆盖服务端的设置。
通过在服务端和客户端引入对于查询结果的缓存机制,Oracle11g或许能极大的提高查询性能。对于一些读比较频繁的系统,比如数据仓库应用,Oracle11g或者更值得期待。
·VMware下RedHat安装Oracle 9i RAC全攻略 (5996次浏览)
·简单的Oracle存储过程的创建方法(菜鸟级) (5135次浏览)
·Oracle架构的基础知识(入门级) (4974次浏览)
·ORACLE中的各种数据类型详细的介绍 (4751次浏览)
·ORACLE备份一(ORACLE BACKUP STRATEGY) (1893次浏览)
·双机热备Oracle数据库服务器操作实战 (1792次浏览)
·Oracle的初学者入门心得 (995次浏览)
·Oracle数据库数据操作和控制语言详解 (962次浏览)
·教你如何截获Oracle数据库连接密码 (698次浏览)
·VMware下RedHat安装Oracle 9i RAC全攻略 (5996次浏览)
·简单的Oracle存储过程的创建方法(菜鸟级) (5135次浏览)
·Oracle架构的基础知识(入门级) (4974次浏览)
·ORACLE中的各种数据类型详细的介绍 (4751次浏览)
·ORACLE备份一(ORACLE BACKUP STRATEGY) (1893次浏览)
·双机热备Oracle数据库服务器操作实战 (1792次浏览)
·Oracle的初学者入门心得 (995次浏览)
·Oracle数据库数据操作和控制语言详解 (962次浏览)
·教你如何截获Oracle数据库连接密码 (698次浏览)
·VMware下RedHat安装Oracle 9i RAC全攻略 (5996次浏览)
·简单的Oracle存储过程的创建方法(菜鸟级) (5135次浏览)
·Oracle架构的基础知识(入门级) (4974次浏览)
·ORACLE中的各种数据类型详细的介绍 (4751次浏览)
·ORACLE备份一(ORACLE BACKUP STRATEGY) (1893次浏览)
·双机热备Oracle数据库服务器操作实战 (1792次浏览)
·Oracle的初学者入门心得 (995次浏览)
·Oracle数据库数据操作和控制语言详解 (962次浏览)
·教你如何截获Oracle数据库连接密码 (698次浏览)
·详细讲解容灾技术中的数据一致性 07-21
·Oracle中数据文件大小的限制 07-21
·容灾项目需要注意的几大问题 07-21
·Oracle SOA平台之SOA套件概述 07-21
·专家解答 充分认识和利用Oracle 11g 07-21
·Oracle数据库中备份、恢复的概念及其关系 07-21
·Oracle11g新特性之Server Result Cache 07-21
·Oracle11g新特性点评之RMAN 07-21
·从内部开始 认识Oracle数据库结构组件 07-21




