SGA 中的另外一个重要结构是共享池。共享池存储了应用执行需要的PL/SQL块结构,SQL语句的文本、SQL编译后的可

执行代码、系统数据字典等。

恰当的共享池尺寸设置将减少系统各种资源的使用。首先,对于SQL、PL/SQL 来说,共享池提供了运行状态下的临时

存储点,后续执行的SQL和PL/SQL将使用已被缓存的编译结果及执行计划,有效减少系统CPU的使用,减少用户调用事件。

第二,栓、锁资源的争用被环节。第三,数据字典信息将被缓存在共享池中,因此,有关系统的信息不必再去执行查询,

这就降低了资源的使用。

在库缓存中区域中,存储着SQL、PL/SQL、Java类的源码、执行计划、伪编译后可执行代码等。当应用程序运行时,这些代码会被调用。如果这些代码在前面不久的应用运行中已经被调用执行过,则可能被后续执行的应用程序共享。默认地,Oracle将试图重复使用现有的代码,实现重用。也就是说,后续应用的执行能够引用前期应用执行中编译过的代码,这称为库缓存的“命中”。一次命中意味着一次

如软解析,SQL、PL/SQL的硬解析及编译过程的资源开销将被避免。

假设后续应用在执行中不能通过库缓存实现“软解析”,Oracle 不得不为SQL、PL/SQL 进行语法解析、执行计划分析和编译,以及

应用代码可执行版本的创建。这个过程称为“硬解析”,硬解析需要整个系统付出额外的CPU时间片、库缓存栓资源等。

从性能上看,我们当然希望能尽可能地实现软解析,减少硬解析。做到这一点需要进行两方面的准备工作:能够重用的SQL和

PL/SQL、足够尺寸的共享池。

SQL与PL/SQL重用

当用户想Oracle 发出SQL、PL/SQL请求时,Oracle将首先确定这些SQL语句、PL/SQL块是否可以在共享池中找到相同的

语句,过程如下:

1>根据要执行的语句文本,和共享池中现有语句文本进行比较

2>如果共享池中没有找到相同的语句,说明SQL语句在共享池中不存在,开始执行硬解析操作。

3>如果找到匹配的语句,Oracle 继续把匹配语句的正文和缓存池中的SQL正文进行严格比较,包括空格、大小写、注释等。

例如下面两条语句就是不同的,虽然只是多了一个空格、大小写有些不一致。

SELECT name FROM Mytable;

SELECT  name FROM mytable;

Oracle在比较语句时,除了比较SQL、PL/SQL文本,也会比较其引用对象。假设两条语句的文本完全一致,但对象属主是另外

的模式,则Oracle也认为该语句是不同的。

1>实现游标共享

在可能的情况下使用绑定变量来替换SQL中的常量。例如,下面两个SQL语句来自不同的两个用户:

SELECT name FROM mytable WHERE id= 1;

SELECT name FROM mytable WHERE id= 2;

从Oracle的角度看,这两个SQL语句是不同的,因为文本不同。下面的语句解决了这个问题

SELECT name FROM mytable WHERE  :v_id= 1;

在上面的语句中,变量v_id 替换了文本,在运行时进行变量赋值即可。要做到这一点,开发中必须遵守如下的共识:首先项目中的

程序员应采用相同的编程规范,其次程序中尽量避免使用动态SQL。最后,尽量使用存储过程、函数或者包、包体。

2>避免执行DDL语句

避免在系统高峰时段执行表的DDL操作,因为这会导致依赖于表、索引的SQL必须做硬解析---他们所依赖的对象结构发生了改变。

3>将序列驻留在缓存中

对于系统中经常使用的序列对象,DBA 最好给他赋予足够的缓存,这会减少数据字典栓(资源锁)的使用频率。因此在CREATE

SEQUENCE 或 ALTER SEQUENCE 中加上Cache 关键词,可以使序列对象长驻缓存。示例如下:

SQL>CREATE SEQUENCE SCOTT.MY_SEQ1 CYCLE ORDER CACHE 20 MAXVALUE 20000 MINVALUE 1 INCREMENT BY 1 START WITH 1;

oracle共享池使用率,oracle调优之--共享池使用问题(摘自文平书)相关推荐

  1. oracle time model,通过案例学调优之--OracleTimeModel(时间模型)

    通过案例学调优之--Oracle Time Model(时间模型) 650) this.width=650;" src="http://www.68idc.cn/help/uplo ...

  2. oracle dbfile数,通过案例学调优之--Oracle参数(db_file_multiblock_read_count)

    通过案例学调优之--Oracle参数(db_file_multiblock_read_count) 应用环境: 操作系统: RedHat EL55 Oracle:   Oracle 10gR2 Ora ...

  3. oracle 全文索引 优化,通过案例学调优之--Oracle 全文索引

    通过案例学调优之--Oracle 全文索引 全文检索(oracle text) Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力,Oracle Text 是 Or ...

  4. GitHub疯狂转发!阿里巴巴彩版java性能调优实战,终于到手了!文末福利

    怎样才能做好性能调优? 开始之前,我先来讲一下我对性能调优的看法.在我看来Java的性能调优并不是像学习编程语言一样可以通过学习掌握,它是没有办法用直线的思维学会并掌握使用的,并且它对于程序员来说,对 ...

  5. Java线程池面试必备:核心参数、工作流、监控、调优手段

    欢迎关注方志朋的博客,回复"666"获面试宝典 1. Java的线程池 ① 合理使用线程池的好处 Java的线程池是运用场景最多的并发框架,几乎所有需要异步或者并发执行任务的程序都 ...

  6. Oracle数据库性能调优

    Oracle数据库应用系统的调优,实质就是降低CPU负载.改善I/O性能(磁盘,网络),提高内存使用率. 表空间优化 SYSTEM表空间用于存放ORACLE系统的有关信息,要保证其有足够的空余量.一般 ...

  7. oracle 常用调优方法

    Oracle数据库应用系统的调优主要包括十个方面: (1).优化数据库内存: (2).在Oracle共享池中固定应用程序代码: (3).优化数据存储: (4).优化数据排序的技术: (5).优化SQL ...

  8. 【Oracle】undo 自动调优

      Oracle 10gr2的后续版本中添加了UNDO信息最短保留时间段自动调优的特性,不再仅仅依据参数UNDO_RETENTION的设定,其调优原则如下: 1 当UNDO TABLESPACE为 f ...

  9. 大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例

    大数据技术之_19_Spark学习_07 第1章 Spark 性能优化 1.1 调优基本原则 1.1.1 基本概念和原则 1.1.2 性能监控方式 1.1.3 调优要点 1.2 数据倾斜优化 1.2. ...

  10. 基于Linux的WebSphere性能调优与故障诊断

    一.关于was数据源等问题的配置 (1)关于was数据源连接池的最大.最小配置多大合适?怎样去计算? (2)关于JVM的配置,64位系统,64位WAS,最值小和最大配置多大最优?怎样去计算? (3)应 ...

最新文章

  1. 方便的boost_python
  2. VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】
  3. PHP 简单的数字过滤函数
  4. c#调用Matlab的参数传递
  5. 想避免宕机,数据中心运营商还要不断演练实践
  6. Apache2 httpd.conf配置文件中文版详解
  7. (计算机组成原理)第二章数据的表示和运算-第一节3:字符与字符串在计算机中的表示详解
  8. Spring笔记02(3种加载配置文件的方式)
  9. linux 7 yum源,Linux Redhat 7 安装免费yum源
  10. python入门经典100题-Python基础训练100题(带答案)[DOC][47KB]
  11. 如何创建PDF格式文件,这个方法教你快速创建
  12. 需求分析:5W1H分析法
  13. 基于Spark的学生成绩分析系统
  14. 《学习Oracle从这里开始》之常用SQL篇
  15. TensorFlow问题:FLAGS._parse_flags()报错AttributeError:_parse_flags
  16. 阿里天池龙珠计划-SQL训练营-Task06
  17. 【Deblurring by Realistic Blurring】阅读笔记
  18. 边缘之战鸣枪 新华三蓄势待发
  19. linux双网卡网桥转发,Linux网桥实现
  20. jsp四大作用域和九大内置对象

热门文章

  1. word-wrap和word-break,white-space的区别
  2. 各代iphone尺寸_Iphone 历代 参数
  3. com.alibaba.datax.common.exception.DataXException: Code:[ESWriter-03]
  4. 正大国际琪貨纯手召:期货交易中的五大忌
  5. iPhone所有手机型号屏幕尺寸及H5的CSS适配
  6. 基于openstack构建私有云实践
  7. python语句分号_Python中的分号
  8. UILabel 首行缩进两个字符
  9. iOS 开发 Provisioning Profile(描述文件) 详解
  10. 一句理解到底什么是雷达中的波位