11g的新特性:SQL Plan Management(SPM)
Oracle11g中,Oracle提供dbms_spm包来管理SQL Plan,SPM是一个预防机制,它记录并评估sql的执行计划,将已知的高效的sql执行计划建立为SQL Plan Baselines,SQL Plan Baseline的功能是保持SQL的性能而不必关注系统的改变。
1.Capturing SQL Plan Baselines
在SQL Plan BaseLines捕获阶段,Oracle记录SQL的执行计划并检测该执行计划是否已经改变,如果SQL改变后的执行计划是安全的,则SQL就使用新的执行计划,因此,Oracle维护单个SQL执行计划的历史信息,Oracle维护的SQL执行计划的历史仅仅针对重复执行的SQL,SQL Plan Baseline可以手工load,也可以设置为自动捕获。
A. Automatic Plan Capture
如果要激活自动的SQL Plan Capture,则需要设置OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES,该参数默认为False,如果设置为True,则表示海底捞月活自动捕获SQL Plan,则系统会自动创建并维护SQL Plan History,SQL Plan History包括优化器关注的:比如an execution plan, SQL text, outline, bind variables, and compilation environment。
B. Manual Plan Loading
也可以手动装载一个存在的SQL Plan作为SQL Plan Baseline,手动装装的SQL Plan并不校验它的性能:
<CCID_NOBR>
<CCID_CODE>--从SQL Tuning Set中装载: |
2.Selecting SQL Plan Baselines
在SQL Plan选择阶段,SQL每一次编绎,优化器使用基于成本的方式,建立一下best-cost的执行计划,然后去匹配SQL Plan Baselines中的SQL Plan,如果找到了匹配的SQL Plan,则会使用这个执行计划,如果没有找到匹配的SQL Plan,优化器就会去SQL Plan History中去搜索成本最低的SQL Plan,如果优化器在SQL Plan History中找不到任务匹配的SQL Plan,则该SQL Plan被作为一个Non-Accept Plan被存入SQL Plan History,新的SQL Plan直到它被验证不会引起一下性能问题才会被使用。
--如何激活使用SQL Plan Baselins
SQL> alter system set OPTIMIZER_USE_SQL_PLAN_BASELINES = true;
3.Evolving SQL Plan Baselines
在SQL Plan Baselines的演变阶段,Oracle评估新的Plan的性能并将性能较好的Plan存放SQL Plan Baselines中,可以使用dbms_spm package的过程EVOLVE_SQL_PLAN_BASELINE将新的SQL Plan存入已经存在的SQL Plan Baselines中,新的Plan将会作为已经Accept Plan加入到SQL Plan Baselines中。
<CCID_NOBR>
<CCID_CODE>SET SERVEROUTPUT ON |
4.相关的数据字典
<CCID_NOBR>
<CCID_CODE>dba_sqlset_plans |
5.用dbms_xplan显示SQL Plan
在11g中,Oracle增强了dbms_xplan包的显示功能,不仅可以显示单个sql的执行计划,还可以用来显示sql tuning set,以及sql plan baselines等,在此就仅仅对显示sql plan baselines做测试:
<CCID_NOBR>
<CCID_CODE>select * |
11g的新特性:SQL Plan Management(SPM)的更多相关文章
- Oracle 11g 新特性 --SQL Plan Management 说明
Oracle 11g 新特性 --SQL Plan Management 说明 参见大神博主文章: http://blog.csdn.net/tianlesoftware/article/detail ...
- 11g新特性-SQL Plan Management
在11g之前版本,提供了stored outlines(sql概要)特性来保存sql的执行计划. 在11g中,引入了一个新的特性sql计划管理(sql plan management)特性来保存sql ...
- oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)
1. 简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计 ...
- 官方文档:11G新特性SQL PLAN BASLINE 执行计划基线
什么是SQL执行计划管理? SQL计划管理(SQL plan management)是一咱预防机制,记录和评估SQL语句的执行计划.SQL plan management的主要功能是sql plan ...
- Oracle 固定执行计划-使用SPM(Sql Plan Management)固定执行计划
固定执行计划-使用SPM(Sql Plan Management)固定执行计划 转载自:http://www.lunar2013.com/2016/01/固定执行计划-使用spm%EF%BC%88sq ...
- Bullet:ORACLE Using SQL Plan Management(一)
SQL Plan Management如何工作? 当一个SQL硬解析时,基于成本的优化器CBO会生成多个执行计划,并从这些执行计划中选择一个优化器认为最低成本的执行计划. 如果SQL plan bas ...
- 盘点 Oracle 11g 中新特性带来的10大性能影响
Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先引起的是一些麻烦,因为对于新技术的不了解.因为对于旧环境的不适应,从Oracle产品到技术服务运维,总是 ...
- 11g ASM新特性
Oracle 11g的ASM有两个有意思的特性,我们看看他们能带给我们什么? 1.Fast mirror resync 原来当diskgroup中的盘发生故障时,Oracle会将这个盘标记为offli ...
- Oracle 11g新特性
文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...
随机推荐
- request参数获取的几种方式
经常用到Request.QueryString[""]和Request.Form[""]来获取参数值. 今天照常用,ajax方式向后台传参,先用的Request ...
- JVM的理解
1.Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分.在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 也相当与 注:JVM(ja ...
- SQL映射文件
SQL映射文件的几个顶级元素 mapper - namespace cache - 配置给定命名空间的缓存 cache-ref – 从其他命名空间引用缓存配置 resultMap –用来描述数据库结 ...
- d3.js(v5.7)的比例尺以及坐标轴
直接上代码了,这里的一些函数用的是之前我自己封装的函数(包括attr的obj支持和节点数量和数据数量的自动匹配),若有不明白的,可以查看之前的博客: 页面的效果如下: 接下来继续添加坐标轴: 最终:
- Android 图片压缩各种方式
前言:由于公司项目当中需要用到压缩这块的相应技术,之前也做过的图片压缩都不是特别的理想, 所以这次花了很多心思,仔细研究和在网上找到了很多相对应的资料.为了就是 以后再做的时候直接拿来用就可以了 ...
- Kotlin Reference (一) Basic Syntax
什么是Kotlin Kotlin翻译成中文叫"靠他灵",它是由JetBrains公司发明的一种基于JVM的编程语言,目前Google宣布kotlin为Android开发的官方语言. ...
- Docker及常用操作
镜像.容器和仓库 Docker镜像: 镜像是一个只读的模板,可以用来创建Docker容器.可以直接创建一个镜像,或者是更新已有镜像,或者复制他人的镜像直接使用. Docker容器: 容器是镜像的实例, ...
- 文件的copy
def mycopy(src_filename, dst_filename): try: fr = open(src_filename, "rb") try: try: fw = ...
- stm32寄存器版学习笔记09 IIC
I²C(Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外设,是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据. IIC总线在传送数据过程中 ...
- BZOJ3998 TJOI2015 弦论 【后缀自动机】【贪心】
Description 对于一个给定长度为N的字符串,求它的第K小子串是什么. Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个. ...