点击查看全文

Dear
跟着小编一起读好书运动开始啦!咱们作为DBA不仅要外部打扮自己,更要从内部武装。近期,小编将分享冷菠老师的《Oracle高性能自动化运维》一部分精选章节分享给大家。如果你对内容很感兴趣,还是要去买一本比较好哦。


冷菠

冷菠,网名悠然(个人主页http://www.orasky.net ),资深DBA,著有《Oracle高性能自动化运维》,有近10年的数据库运维、团队管理以及培训经验。曾担任美资企业Senior DBA职务、支付公司数据库团队负责人,现为培训机构重庆优唯佳科技公司技术合伙人。
擅长数据库备份恢复、数据库性能诊断优化以及数据库自动化运维等,对主机存储、网络、系统业务架构设计优化、大数据等领域有较为深入的研究。目前致力于大数据、智能一体化、开源云计算等领域的佳实践探索。

Library Cache主要用于存放SQL游标,而SQL游标最大化共享是Library Cache优化的重要途径,可以使SQL运行开销最低、性能最优。


SQL语句与父游标及子游标

在PL/SQL中,游标(Cursor)是数据集遍历的内存集合。而从广义上讲, 游标是SQL语句在Library Cache中的内存载体。

SQL语句与游标关系如下:

1.一条SQL语句包含一个父游标(Parent Cursor)和一到多个子游标(Child Cursors),如图2-2所示。


图2-2 SQL语句与游标

2.SQL语句通过SQL_ID唯一标识父游标,如下所示:

从上述示例可以看出,SQL语句使用SQL_ID唯一标识父游标(V$SQLAREA),同时该SQL语句仅包含一父游标和一个子游标。

3.不同的SQL语句的父游标也不同,如下所示:

可以看出,2个不同SQL语句对应的SQL_ID也不相同,产生了不同的父游标。

小提示

当SQL语句父游标不相同,其对应的子游标也肯定不同。


父游标

1.父游标特点

父游标的主要特点如下:

q 父游标是由SQL语句决定;
q 父游标使用SQL语句的SQL_ID唯一标识;
q 父游标包含一到多个子游标;
q 父游标与参数cursor_sharing紧密相关。

2.父游标组成结构

父游标的主要组成结构如表2-2所示:


表2-2 父游标组成结构

父游标组成结构单元之间的关系,如图2-3所示:


图2-3 父游标组成结构

3.父游标相关查询

父游标信息可以通过V$SQLAREA视图进行查询。

V$SQLAREA主要特点有:

  • V$SQLAREA中一条记录表示一个父游标,如下所示:

可以看出在V$SQLAREA视图中,SQL_ID是唯一的,从侧面也可以说V$SQLAREA中一条记录代表一个父游标。

  • V$SQLAREA只包含父游标的相关信息。

4.父游标相关参数

参数cursor_sharing决定父游标被共享的模式,用于减少解析带来的开销,提升SQL执行效率。

cursor_sharing的3种模式:

  • EXACT (默认模式),如下所示:

  • FORCE
  • SIMILAR

接下来对3种模式进行详细介绍。

  • cursor_sharing= EXACT

默认模式。只有SQL语句内容完全一样,才会共享父游标(SQL语句之间才会共享)。也就是说,当用户端发起的SQL语句只要有一点不相同,就会产生不同的父游标,从而不会共享SQL父游标。如下所示:

  • cursor_sharing = FORCE

当模式设置为FOCE时,将会强制优化器共享父游标,而不管执行计划是否最优。当条件允许时,可以采用这种方式来减少解析开销。如下所示:

点击查看全文

Library Cache优化与SQL游标相关推荐

  1. 《Oracle高性能自动化运维》一一2.3 Library Cache

    本节书摘来自华章计算机<Oracle高性能自动化运维>一书中的第2章,第2.3节,作者:冷菠 著,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.3 Lib ...

  2. oracle library cache lock,【案例】Oracle等待事件library cache lock产生原因和解决办法...

    [案例]Oracle等待事件library cache lock产生原因和解决办法 时间:2016-12-07 18:56   来源:Oracle研究中心   作者:网络   点击: 次 天萃荷净 O ...

  3. Oracle Library Cache 的 lock 与 pin 说明

    一. 相关的基本概念 之前整理了一篇blog,讲了Library Cache 的机制,参考: Oracle Library cache 内部机制 说明 http://blog.csdn.net/tia ...

  4. 【云和恩墨大讲堂】故障分析 | library cache latch 竞争案例分享

    李华(网名:回忆未来) 云和恩墨高级技术顾问 本篇整理内容是本周四晚李华在"云和恩墨大讲堂"中授课的课件资料:故障分析 - library cache latch 竞争案例分享,如 ...

  5. oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)

    1.   ACS简单介绍 Oracle Database 11g提供了Adaptive Cursor Sharing (ACS)功能,以克服以往不该共享的游标被共享的可能性.ACS使用两个新指标:se ...

  6. oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)

    1.   简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计 ...

  7. 经验:Library Cache Lock之异常分析-云和恩墨技术通讯精选

    亲爱的读者朋友: 为了及时共享行业案例,通知共性问题,达成共享和提前预防,我们整理和编辑了<云和恩墨技术通讯>,通过对过去一段时间的知识回顾,故障归纳,以期提供有价值的信息供大家参考.同时 ...

  8. oracle hcmc,oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)

    1.   ACS简介 Oracle Database 11g提供了Adaptive Cursor Sharing (ACS)功能,以克服以往不该共享的游标被共享的可能性.ACS使用两个新指标:sens ...

  9. sql语句优化之SQL Server

    MS   SQL   Server查询优化方法 查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)          2.I/O吞吐量小,形成 ...

最新文章

  1. Java源码详解三:Hashtable源码分析--openjdk java 11源码
  2. spring ioc原理(看完后大家可以自己写一个spring)
  3. [转]Linux配置防火墙
  4. redis 分布式锁 看门狗_漫谈分布式锁之Redis实现
  5. springboot集成mybatis源码分析(一)
  6. 【JSP开发】有关session的一些重要的知识点
  7. (113)FPGA面试题-LUT计算问题
  8. 自学python顺序-python数据结构学习之实现线性表的顺序
  9. 单片机(ISIS 7 Professional):交通灯代码项目
  10. 单片机原理及应用 C51编程 proteus仿真
  11. logit回归模型的参数估计过程_LOGISTIC模型参数估计及预测实例.pdf
  12. 单片机_第1章 单片机基础知识概述
  13. 配合字体图标的搜索框
  14. Excel2003创建表格首行冻结
  15. Acwing动态规划1——背包问题
  16. 2015年8月5日------------赵鑫
  17. [转载]SAP报表开发工具——Report Painter
  18. vue复选框组件自定义对勾_关于vue的列表图片选中打钩操作
  19. 苹果商店上架流程_苹果应用商店APP上架流程介绍!(ASO推广优化)
  20. 什么缩写是mzj_mzjh是什么意思,mzjh缩写代表什么意思,mzjh是什么含义

热门文章

  1. \t\t终身受用!告诉你关于PDF文件的一切
  2. GhostNet原文翻译
  3. 第十一周 日期算星座
  4. eyoucms 网站描述怎么写?
  5. flask实战篇之python修饰符总结
  6. 新公司只有短信通知入职_介绍我们新的短信通知服务
  7. 雷达天线孔径与分辨率
  8. 5G消息对于银行业务场景的价值分析
  9. CSS 学习笔记 - 网格布局(栅格系统)
  10. 怎么本地查看svn服务器文件