11g新特性-SQL Plan Management
在11g之前版本,提供了stored outlines(sql概要)特性来保存sql的执行计划。
在11g中,引入了一个新的特性sql计划管理(sql plan management)特性来保存sql性能。
数据库自动控制sql执行计划的演变,借助sql plan baselines。 SPM会不时的捕获和评估sql的执行计划,然后建立只包含高效的执行计划的sql plan baselines。 sql plan baselines只会包含那些不会引起sql性能下降的执行计划。
当系统遇到以下变化时,可以使用SPM来保存sql的性能信息:
-数据库升级
-新的优化器版本
-优化器参数修改
-系统设置变更
-schema信息和元数据变更
-部署新的应用模块
sql plan baselines
sql plan baseline是数据库为每个可重复执行sql语句维护的历史执行计划的集合。这些执行计划只包含数据库可接受的执行计划。
1.自动捕获sql plan baselines
自动捕获需要设置参数optimizer_capture_sql_plan_baselines的值为true,默认是false。
SQL> alter system set optimizer_capture_sql_plan_baselines=true scope=spfile;
可以从SQL Tuning Set (STS) 和 Cursor Cache中创建sql plan baselines。
(1)从sql tuning set中导出sql plan
#创建空的sql调优集
begindbms_sqltune.create_sqlset(sqlset_name => 'testset1',description => 'test sql tuning set to capture awr data');end;/
#使用load_sqlset将sql plan加载到新创建的sql tuning set中
declaretest_cursor1 dbms_sqltune.sqlset_cursor;beginopen baseline_cursor forselect value(p) from table(dbms_sqlture.select_workload_repository('peak baseline',null,null,'elapsed_time',null,null,null,20)) p;dbms_sqlset.load_sqlset(sqlset_name => 'testset1',populate_cursor => test_cursor1);end;/
#将sql tuning set中的数据导入sql plan baselines
declaretest_plans pls_integer;begintest_plans := dbms_spm.load_plans_from_sqlset(sqlset_name => 'testset1');end;/
(2)从Cursor Cache中导出sql plan
declaretest_plans pls_integer;begintest_plans := dbms_spm.load_plans_from_cursor_cache (sql_id => '123456789999')return pls_integer;end;/
管理sql plan baselines使用oracle提供的dbms_spm包。
查看SQL plan baselines的属性
select sql_handle,sql_text,plan_name,origin,enabled,accepted,fixed,autopurgefrom dba_sql_plan_baselines;
将某个sql plan修改为accept状态
SQL> exec dbms_spm.alter_sql_plan_baselines(sql_handle => SYS_SQL_122222222',plan_name => 'SYS_SQL_PLAN_b5429522ee05ab0e',attribute_name => 'accepted-status',attribute_value => 'YES');
查看某个sql的baseline:
select *from table(dbms_xplan.display_sql_plan_baseline(sql_handle => 'SYS_SQL_ba5e12ccae97040f',format => 'basic'));
SQL Management Base
sql plan management将sql plan baselines信息存放在一个新的数据字典中--sql management base(SMB)。
SMB被存放在sysaux表空间中。
配置sql management base(SMB)
配置SMB需要设置以下两个参数:
SQL> select parameter_name,parameter_value 2 from dba_sql_management_config;PARAMETER_NAME PARAMETER_VALUE ------------------------------ --------------- SPACE_BUDGET_PERCENT 10 PLAN_RETENTION_WEEKS 53SQL>
参数space_budget_percent表示SMB可以占用sysaux表空间的比例。默认是10%
SQL> exec dbms_spm.configure('space_budget_percent',40); SQL> exec dbms_spm.configure ('plan_retention_weeks', 105);
#手动清空SMB
SQL> exec dbms_spm.purge_sql_plan_baseline('SYS_SQL_PLAN_b5429522ee05ab0e');
查看SMB配置信息:
SQL> select PARAMETER_NAME,PARAMETER_VALUE,LAST_MODIFIED,MODIFIED_BY2 from dba_sql_management_config;PARAMETER_NAME PARAMETER_VALUE LAST_MODIFIED MODIFIED_BY ------------------------------ --------------- -------------------- -------------------- SPACE_BUDGET_PERCENT 10 PLAN_RETENTION_WEEKS 53SQL>
11g新特性-SQL Plan Management相关推荐
- oracle spm buffer get比较过程,Oracle 11g 新特性 -- SQL Plan Management 示例
一. SPM 说明 与Oracle 9i 的outline和10g 的profile比,Oracle 11g的SPM相对更加的灵活.如,一条带有绑定变量的SQL语句,最好的执行计划会根据绑定变量的值而 ...
- 【11g】SPM说明(SQL Plan Management )
Oracle 11g 新特性 -- SQL Plan Management 说明 2012年12月13日 20:14:45 Dave 阅读数:9173 版权声明: https://blog.csdn. ...
- oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)
1. 简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计 ...
- 11g新特性-自动sql调优(Automatic SQL Tuning)
11g新特性-自动sql调优(Automatic SQL Tuning) 在Oracle 10g中,引进了自动sql调优特性.此外,ADDM也会监控捕获高负载的sql语句. 在Oracle 11g中, ...
- SQL Plan Management介绍
基于成本的优化法则基于统计信息找到最优执行计划,但是一些环境的变化可能影响执行计划的改变如: · New optimizer version · Changes to ...
- Oracle 11g 新特性简介
Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...
- Oracle 11g新特性
Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...
- 【】oracle 11g 新特性
Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...
- oracle 11g 新特性
2019独角兽企业重金招聘Python工程师标准>>> Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的 ...
最新文章
- msp430入门学习31
- Python练习 | Python中的运算符
- Xen和虚拟化技术学习指南
- 阿里大数据分析与应用(part7)--机器学习平台PAI
- 图解集成学习中的梯度提升思想
- handler机制的原理_Handler机制竟然可以这样解释,我惊呆了!
- ●洛谷P2606 [ZJOI2010]排列计数
- java 登陆拦截器_java 登录拦截器
- c 语言病毒源码大全,易语言病毒源码大全
- CAD贱人工具箱6.0免注册
- Ubuntu下搜狗輸入法不能输入汉字
- LeetCode 799 香槟塔[模拟+动态规划] HERODING的LeetCode之路
- B-Tree和B+Tree学习笔记
- HR面/综合面系列:公司相关
- Typora1.0.2 + SMMS上传图片
- arcmap给tif添加地理坐标_如何将JPG格式的图片转化为带地理坐标的TIFF格式
- 软件工程实践结对作业一
- Oracle日志挖掘之LogMiner
- ROS 相关学习资源汇总
- 知识管理与竞争情报的联系
热门文章
- Redhate5.4下Oracle 11g安装
- NHibernateLinq简单的CRUD操作
- Oracle去除表中重复记录
- 树莓派安装python模块_树莓派引脚编号、pypi说明和安装
- Intel汇编语言程序设计学习-第六章 条件处理-上
- POJ2118基础矩阵快速幂
- 【Git】将 GitHub 工程设置为私有库 ( 登录账号 | 工程主页 | Settings | Danger Zone | Change visibility | Make private )
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )
- 【EventBus】事件通信框架 ( 总结 | 手写事件通信框架完整代码示例 | 测试上述框架 )
- 【SeeMusic】音符方块颜色设置 ( 单一颜色设置 | 多彩音符设置 | 定时变色设置 | 渐变颜色 | 分轨道提示 )