Library Cache优化与SQL游标
点击查看全文
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游标相关推荐
- 《Oracle高性能自动化运维》一一2.3 Library Cache
本节书摘来自华章计算机<Oracle高性能自动化运维>一书中的第2章,第2.3节,作者:冷菠 著,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.3 Lib ...
- oracle library cache lock,【案例】Oracle等待事件library cache lock产生原因和解决办法...
[案例]Oracle等待事件library cache lock产生原因和解决办法 时间:2016-12-07 18:56 来源:Oracle研究中心 作者:网络 点击: 次 天萃荷净 O ...
- Oracle Library Cache 的 lock 与 pin 说明
一. 相关的基本概念 之前整理了一篇blog,讲了Library Cache 的机制,参考: Oracle Library cache 内部机制 说明 http://blog.csdn.net/tia ...
- 【云和恩墨大讲堂】故障分析 | library cache latch 竞争案例分享
李华(网名:回忆未来) 云和恩墨高级技术顾问 本篇整理内容是本周四晚李华在"云和恩墨大讲堂"中授课的课件资料:故障分析 - library cache latch 竞争案例分享,如 ...
- oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)
1. ACS简单介绍 Oracle Database 11g提供了Adaptive Cursor Sharing (ACS)功能,以克服以往不该共享的游标被共享的可能性.ACS使用两个新指标:se ...
- oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)
1. 简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计 ...
- 经验:Library Cache Lock之异常分析-云和恩墨技术通讯精选
亲爱的读者朋友: 为了及时共享行业案例,通知共性问题,达成共享和提前预防,我们整理和编辑了<云和恩墨技术通讯>,通过对过去一段时间的知识回顾,故障归纳,以期提供有价值的信息供大家参考.同时 ...
- oracle hcmc,oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)
1. ACS简介 Oracle Database 11g提供了Adaptive Cursor Sharing (ACS)功能,以克服以往不该共享的游标被共享的可能性.ACS使用两个新指标:sens ...
- sql语句优化之SQL Server
MS SQL Server查询优化方法 查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成 ...
最新文章
- Java源码详解三:Hashtable源码分析--openjdk java 11源码
- spring ioc原理(看完后大家可以自己写一个spring)
- [转]Linux配置防火墙
- redis 分布式锁 看门狗_漫谈分布式锁之Redis实现
- springboot集成mybatis源码分析(一)
- 【JSP开发】有关session的一些重要的知识点
- (113)FPGA面试题-LUT计算问题
- 自学python顺序-python数据结构学习之实现线性表的顺序
- 单片机(ISIS 7 Professional):交通灯代码项目
- 单片机原理及应用 C51编程 proteus仿真
- logit回归模型的参数估计过程_LOGISTIC模型参数估计及预测实例.pdf
- 单片机_第1章 单片机基础知识概述
- 配合字体图标的搜索框
- Excel2003创建表格首行冻结
- Acwing动态规划1——背包问题
- 2015年8月5日------------赵鑫
- [转载]SAP报表开发工具——Report Painter
- vue复选框组件自定义对勾_关于vue的列表图片选中打钩操作
- 苹果商店上架流程_苹果应用商店APP上架流程介绍!(ASO推广优化)
- 什么缩写是mzj_mzjh是什么意思,mzjh缩写代表什么意思,mzjh是什么含义