`
Evanxu#
  • 浏览: 54936 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle11g结果缓存集

阅读更多
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  随着过去三十年Oracle关系型数据库管理系统的发展,它提供给数据库管理员几个选项将经常被访问的数据保存在内存中以减少或消除从数据库的I/O子系统读取不必要的数据。下面是使数据库管理员可以在她的工具中找到的一些特性的快速概览,这些特性帮助维护对查询数据库内存中相关数据的良好控制。

  持久缓存数据库块。 CACHE 存储选项(还提供了+CACHE优化器提示)提供了一个为数据表保存所有数据库块的方法,只要这个表被表扫描进数据库缓存区中。一旦通过这个方法进行了缓存区,相关的缓存就绝不会从缓存区中过期,直到数据库实例终止。这个策略有一些缺陷,因为它依赖于数据库管理员对哪个表最能受益于缓存的了解,它还倾向于作为一个用于编码表和参照数据的万用解决方法而被过度使用。

  影响数据库块的保存持久性。Oracle还通过创建或改变一个表或索引以便它保存在这个缓存池中,从而提供了影响缓存保持在数据库缓存区中的KEEP缓存池中的能力。Oracle只是简单的将缓存尽可能长时间的保存在KEEP池中;本质上来说,它们放置在缓存中更接近最常使用(MRU)的一端。但是,没有什么是永远的,当大型查询需要大量缓存来完成时,就可能使KEEP缓存池中的缓存最终过期。

  永久地保存结果集。物化视图(MV)提供了一个保存经常查询的数据的方法:通过创建一个具有基本表的视图来保存一个特定记录集一段较长时间的能力。如果配置适当,Oracle将“重写”一个现有查询以便它查询物化视图而不是直接查询基本的数据库表。此外,可以建立一个物化视图以便对它的基本基础数据的改变可以自动地对依赖的物化视图进行更新。但是,物化视图的最明显优势也是它的潜在危害:因为它需要定期地进行更新以保证它的数据是最新的,数据的实际刷新可能花费额外的时间,甚至有可能发生在很不恰当的时刻。

  我们真正需要的是持久性比这些特性短一些的东西(仍然很出色!):一段只存储一个查询结果的内存,它可以与任何其它需要相似数据的存储共享。例如,一个“编码表”捕捉U.S.各州和土地面积,它可能只是一个具有几行和几列的表,并且几乎都不改变,所以它应该很少需要被更新。因此,当这个结果集不再有效时,我希望它可以自己更新而不需要我进行任何干预。那么经常被几个用户频繁执行、但不经常利用物化视图的查询重写功能的查询怎么样呢?物化视图在创建、配置和刷新方面不是那么简单,所以这个特性需要比物化视图更易于建立,而且必须能够只花费几分钟的执行耗费来刷新它本身。

  SQL查询结果集缓存

  Oracle Database 11g提供了结果集缓存来提供这个功能。一个SQL查询结果集将取决于几个新的初始化参数的设置,被缓存在共享全局区(SGA)的一个数据库实例共享池的子段中。

  RESULT_CACHE_MODE。这个新参数接受三个值之一,它可以被设置为数据库(ALTER SYSTEM)或单独会话(ALTER SESSION)级别:
  当设置为MANUAL(默认)时,如果查询本身指定了+RESULT_CACHE优化器提示,那么一个SQL查询结果将只被认为是可能被缓存。
  但是如果这个参数设置为FORCE,那么查询的结果将总是被缓存,除非这个查询指定了+NO_RESULT_CACHE优化器提示。
  最后,如果这个参数设置为了AUTO,那么Oracle 11g使用一个未发布的内部算法来自动地根据结果集从未来语句执行受益频繁度来决定查询结果集是否应该被缓存。只有当这个查询指定了+NO_RESULT_CACHE优化器提示时它才会被忽略。

  控制结果集缓存内存的利用。Oracle 11g还提供了几个方法来限制使得分配给SQL查询结果集缓存的内存数量是合适的:

  RESULT_CACHE_MAX_SIZE。为所有的本地结果缓存预留适当的SGA内存量,数据库管理员可以为RESULT_CACHE_MAX_SIZE初始参数指定一个数值。Oracle 11g自动地将这个提供的数值四舍五入到最接近的32K界限。

  如果没有提供数值,那么Oracle 11g使用下面的算法来为结果缓存分配内存:

  如果为新的Oracle 11g MEMORY_TARGET 参数指定了数值(例如分配给数据库实例的SGA和PGA的总内存),那么Oracle将设置RESULT_CACHE_MAX_SIZE为MEMORY_TARGET的0.25%。

  如果没有为MEMORY_TARGET设置数值,但是设置了SGA_TARGET的数值,那么Oracle 11g将RESULT_CACHE_MAX_SIZE设置为SGA_TARGET的0.5%。

  最后,如果没有为MEMORY_TARGET设置数值,也没有为SGA_TARGET设置数值,那么Oracle根据的SHARED_POOL_SIZE设置将RESULT_CACHE_MAX_SIZE设置为分配给共享池的1.0%。

  注意,无论使用哪个算法,Oracle 11g都不会将RESULT_CACHE_MAX_SIZE设置为超过SHARED_POOL_SIZE的75%。此外,要注意如果数据库管理员想使SQL结果缓存特性完全失效,那么她仅仅需要设置这个内存分配空间规模为0来告诉Oracle 11g不为结果缓存保留任何内存空间。

  RESULT_CACHE_MAX_RESULT。 这个参数告诉Oracle 11g每个单个查询应该允许多少结果缓存。它的默认值是整个结果缓存的5%,这通常应该是足够的,但是它也可以设置为0%到100%。
分享到:
评论

相关推荐

    oracle驱动ojdbc678oracle11g

    Oracle 11g是Oracle公司发布的一款关系型数据库管理系统,它在功能、性能和安全性方面都有显著提升。Oracle 11g引入了许多新特性,如自动工作负载收集、数据屏蔽、实时应用集群(RAC)改进、高级压缩、自动存储管理...

    ORACLE11G新特性

    Oracle 11G 引入了一个重要的新工具——数据恢复顾问(Data Recovery Advisor,简称 DRA),它能够自动诊断并修复数据库中的故障。当遇到物理损坏或逻辑错误时,DRA 可以提供一系列建议来修复问题。例如: 1. **...

    脱机下RedHat7.6安装Oracle11g详细攻略.pdf

    RedHat7.6操作系统环境下安装Oracle 11g R2数据库的详细步骤和关键知识点如下: 一、OS环境准备: 1. 配置本地yum源: - 创建本地yum源配置文件`redhat-base.repo`。 - 指定本地安装介质的路径,并设置为yum源。 ...

    oracle rac 11g

    #### 一、Oracle RAC 11g 概念 **Oracle RAC(Real Application Clusters)11g** 是一款高级数据库集群解决方案,由Oracle公司开发并发布。它允许多个数据库实例同时访问同一个数据库,从而实现了高度的可扩展性和...

    Oracle11g 考试

    Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,主要针对企业级应用提供高性能、高可用性和安全性。Oracle Certified Professional (OCP) 认证是Oracle为验证专业人士在Oracle数据库管理方面技能和知识...

    oracle11g体系架构学习文档

    Oracle数据库作为企业级应用的主流数据库管理系统,其11g版本是相当知名并且广泛使用的一个版本。Oracle 11g体系架构涉及许多核心组件和概念,下面将根据文档提供的内容详细解释这些知识点。 首先,Oracle 11g体系...

    Oracle 9i、10g、11g通用jdbc驱动包

    Oracle 9i、10g、11g通用JDBC驱动包是Oracle公司为Java开发者提供的数据库连接驱动,使得Java应用程序能够与Oracle数据库进行交互。这些驱动程序遵循Java Database Connectivity (JDBC) API规范,是Java平台上的标准...

    oracle11g安装配置

    Oracle 11g 提供了许多参数可以调整,以提高数据库性能,例如内存使用率、缓存大小、并发连接数等。 6.2 索引优化 Oracle 11g 支持多种索引类型,例如 B-Tree 索引、 Bitmap 索引、Text 索引等,可以根据实际情况...

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    Oracle 11G从入门到精通视频的PPT 第1章-Oracle 11g数据库简介 认识Oracle 11g 回忆Oracle的产品版本 学习Oracle 11g的新特性 第2章-Oracle 11g的安装与测试 能够使用Oracle 11g的基本条件 在Windows 2003上...

    oracle-client11g.rar--Oracle客户端安装包

    3. **Instant Client**:Oracle 11g引入了Instant Client,这是一个轻量级的客户端版本,包含了运行某些Oracle应用程序所需的最小组件,如oci.dll和sqlplus.exe。它不需要完整的客户端安装,减少了硬盘空间占用,...

    oracle11G 10G oci.dll包

    Oracle 11g是Oracle公司的一个较新版本,提供了许多性能优化和新特性,例如自动工作负载Repository(AWR)、Automatic Diagnostic Monitor(ADM)以及高级压缩等。而Oracle 10g是其前一个版本,虽然功能相对较少,但...

    Linux 下安装Oracle11g_R2时中文显示成"囗囗囗囗囗囗囗囗"的解决方法

    在Linux环境下安装Oracle 11g R2数据库时,可能会遇到一个常见的问题,即中文字符显示为"囗囗囗囗囗囗囗囗"的乱码现象。这个问题通常是由于系统环境变量配置不当或者字体支持不足所引起的。下面将详细介绍解决这个...

    Oracle 11G ASM安装准备

    Oracle 11G Automatic Storage Management (ASM) 是Oracle数据库系统中的一个组件,它提供了一种高效、自动化的磁盘管理方案。在安装Oracle 11G ASM之前,需要确保操作系统环境满足特定的要求,以确保安装过程顺利...

    oracle 11g 复习题

    ### Oracle 11g 复习题知识点梳理 #### 第二章知识点详解 **一、填空题知识点解析** 1. **Oracle数据库物理存储结构**: - **数据文件**:存储实际的数据信息。 - **日志文件**:记录数据库的所有事务更改,...

    Oracle10g EM Console配置

    其根本原因是,在Oracle 10g安装过程中,JDK/JRE会根据系统环境自动选择字符集,而这个自动选择的过程有时并不能准确地匹配中文环境的需求。 #### 二、解决方案详解 为了解决这一问题,可以通过手动更改JDK/JRE中...

    Oracle Database 11g The Complete Reference.pdf

    3. **结果缓存(Result Caching)**:为了减少不必要的计算和提高查询性能,Oracle Database 11g引入了结果缓存机制。该机制可以将频繁使用的查询结果存储在内存中,当相同的查询再次发生时,可以直接从缓存中获取结果...

    oca oracle 11g 题目

    Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,主要针对企业级数据管理需求,提供了高效、稳定和安全的数据存储与处理能力。OCA(Oracle Certified Associate)是Oracle认证体系中的初级认证,旨在...

    Oracle 11G BIDW Chinese Version

    - **性能提升**:通过结果集缓存、增强的变更数据捕获和物化视图数据刷新等功能,显著提高了查询响应速度。 - **SQL增强**:支持SQL转置和增强的物化视图重写,增加了SQL语言的功能性和灵活性。 - **OLAP支持**:...

Global site tag (gtag.js) - Google Analytics