高级OWI与ORACLE性能调整读书笔记之SQL的过程执行
来源:互联网 发布:淘宝金牌卖家怎么开通 编辑:程序博客网 时间:2024/05/22 03:38
用户请求执行新的SQL时,Oracle则会利用相关的内存和锁存器执行必要的工作。将这些内容按照时间整理结果如下
1. 用户执行新的SQL时。Oracle在执行基本语法和权限检查等步骤后,获得Hash bucket的library cache锁存器,然后确认库高速缓冲区上是否存在相同的SQL,即相同的LCO。若在获得library cache锁存器的过程中发生争用,则等待latch:library cache事件。存在相同的LCO时直接跳至第8阶段执行,此过程称之为Soft Parsing。每当发生SQL Parsing请求时。Oracle都会增加parse count (total)统计值。
2. 若不存在相同SQL.在获得share pool锁存器后,从空闲列上查找最适合大小的空闲chunk。如果在获得shared pool锁存器的过程中发生争用,则等待latch:shared pool事件。Oracle会一直拥有shared pool锁存器,直到确保chunk为止。
3. 若不存在适合大小的空闲chunk,则查找更大空闲chunk后分割(split)使用。分割后剩下的内存区域重新登记到适当的空闲列。
4. 若检索了所有的空闲列都没有找到恰当的空闲chunk,则检索LRU列。LRU列上的chunk是重建的,而且是当前不使用的。
5. 若在LRU列上检索也不能确保适当大小的chunk,则最佳分配共享池内剩余的内存空间。
6. 以上过程如果均失败,则发生错误ORA-4031.
7. 若找到适当的chunk,对SQL相应的Handle(library cache handle)以Exclusive模式获得library cache lock,并创建LCO信息。创建LCO后,library cache lock变换为null模式,将library cache pin以Exclusive模式获得后,创建执行计划(explain plan).第2-7过程陈伟Hard Parsing。如若发生Hard Parsing,Oracle将增加parse count(hard)统计值。若在Hard Parsing过程中发现SQL语句错误(入参照不存在的对象等),则parse count(failure)统计值将会一起增加。
8. Oracle对SQL Cursor以shared模式获得library cache lock和library cache pin,并执行SQL。这个阶段称为执行阶段。SQL Cursor所参考的LCO(表,Procedure等),基本上与SQL Cursor相同的模式获得的library cache lock和library cache pin。但是执行修改对象信息(如DDL语句)工作时,对相应对象所对应的LCO以Exclusive模式获得Library cache lock和library cache pin。例如‘alter table xxx add varchar2(10)’,这个SQL语句在执行阶段,对于SQL Cursor自身是以Shared模式获得Library cache lock,但是对于表xxx所对应的的LCO是以Exclusive模式获得library cache lock和library cache pin过程中发生争用,则各自需要等待library cache lock和library cache pin事件。
9. Oracle对执行结束的SQL Cursor Fetch数据。这个过程就是Fetch阶段。在Fetch阶段,SQL Cursor将library cache lock变换为Null模式,并解除library cache pin
- 高级OWI与ORACLE性能调整读书笔记之SQL的过程执行
- 高级OWI与ORACLE性能调整读书笔记之Select/Select引起的read by other session
- 高级OWI与ORACLE性能调整读书笔记之UPDATE/UPADTE引起的buffer busy wait
- 高级OWI与ORACLE性能调整读书笔记之Latch:cache buffers chains争用情形
- 几个常用的脚本(from 高级owi与oracle性能调整)
- 高级owi与oracle性能调整(第一章中的常用脚本)
- SQL语句性能调整之ORACLE的执行计划
- SQL语句性能调整之ORACLE的执行计划(一)
- SQL语句性能调整之ORACLE的执行计划
- SQL语句性能调整之ORACLE的优化器
- ORACLE SQL 基础与性能调整
- 性能诊断与调优之OWI--OverView
- 性能诊断与调优之OWI--Components
- <<oracle database 11gR2 性能调整与优化 >>学习--11g的新特性:高级压缩
- Oracle Sql高级编程 第2章 SQL 执行过程
- Oracle SQL的执行过程
- Oracle性能优化读书笔记(1)-SQL执行计划分析工具
- SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
- libsvm使用心得
- 我应该采用哪一种 WSDL 样式?
- 程序顺序点
- 使用Apache的CXF框架开发WebService实例
- 【OpenStack】SSH登录虚拟机出现"Read from socket failed: Connection reset by peer"问题的解决办法
- 高级OWI与ORACLE性能调整读书笔记之SQL的过程执行
- Android入门与Android框架解析01--正向调用模式
- JS获取URL参数
- ps查看进程的stat状态
- (三) 搭建cocos2d-x-android环境 Windows XP3 + Eclipse + NDKR7(或ndkr7b)+COCOS2DX(没有用到cygwin和minigw)
- 博客系统
- 诗言IT那些事
- JPA的Embeddable注解
- 《编程之美》: 寻找发帖水王的扩展问题 2.3