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调优集
begin
dbms_sqltune.create_sqlset(
sqlset_name => 'testset1',
description => 'test sql tuning set to capture awr data'
);
end;
/
#使用load_sqlset将sql plan加载到新创建的sql tuning set中
declare
test_cursor1 dbms_sqltune.sqlset_cursor;
begin
open baseline_cursor for
select value(p) from table(dbms_sqlture.select_workload_repository('peak baseline',null,null,'elapsed_time',null,null,null,)) p;
dbms_sqlset.load_sqlset(sqlset_name => 'testset1',populate_cursor => test_cursor1);
end;
/
#将sql tuning set中的数据导入sql plan baselines
declare
test_plans pls_integer;
begin
test_plans := dbms_spm.load_plans_from_sqlset(sqlset_name => 'testset1');
end;
/
(2)从Cursor Cache中导出sql plan
declare
test_plans pls_integer;
begin
test_plans := dbms_spm.load_plans_from_cursor_cache (
sql_id => '')
return pls_integer;
end;
/
管理sql plan baselines使用oracle提供的dbms_spm包。
查看SQL plan baselines的属性
select sql_handle,
sql_text,
plan_name,
origin,
enabled,
accepted,
fixed,
autopurge
from 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
from dba_sql_management_config; PARAMETER_NAME PARAMETER_VALUE
------------------------------ ---------------
SPACE_BUDGET_PERCENT
PLAN_RETENTION_WEEKS SQL>
参数space_budget_percent表示SMB可以占用sysaux表空间的比例。默认是10%
SQL> exec dbms_spm.configure('space_budget_percent',);
SQL> exec dbms_spm.configure ('plan_retention_weeks', );
#手动清空SMB
SQL> exec dbms_spm.purge_sql_plan_baseline('SYS_SQL_PLAN_b5429522ee05ab0e');
查看SMB配置信息:
SQL> select PARAMETER_NAME,PARAMETER_VALUE,LAST_MODIFIED,MODIFIED_BY
from dba_sql_management_config; PARAMETER_NAME PARAMETER_VALUE LAST_MODIFIED MODIFIED_BY
------------------------------ --------------- -------------------- --------------------
SPACE_BUDGET_PERCENT
PLAN_RETENTION_WEEKS SQL>
11g新特性-SQL Plan Management的更多相关文章
- Oracle 11g 新特性 --SQL Plan Management 说明
Oracle 11g 新特性 --SQL Plan Management 说明 参见大神博主文章: http://blog.csdn.net/tianlesoftware/article/detail ...
- 11g的新特性:SQL Plan Management(SPM)
Oracle11g中,Oracle提供dbms_spm包来管理SQL Plan,SPM是一个预防机制,它记录并评估sql的执行计划,将已知的高效的sql执行计划建立为SQL Plan Baseline ...
- 官方文档:11G新特性SQL PLAN BASLINE 执行计划基线
什么是SQL执行计划管理? SQL计划管理(SQL plan management)是一咱预防机制,记录和评估SQL语句的执行计划.SQL plan management的主要功能是sql plan ...
- 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中, ...
- Oracle 11g新特性
文章转自网络 Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(I ...
- 11g新特性-概述 (转)
一.新特性提纲 1.数据库管理部分 ◆数据库重演(Database Replay) 这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试 ...
- Oralce 11g新特性 转载
Oracle 11g于2007年7月11日美国东部时间11时(北京时间11日22时)正式发布,11g是甲骨文公司30年来发布的最重要的数据库版本,根据用户的需求实现了信息生命周期管理(Informat ...
- Oracle 固定执行计划-使用SPM(Sql Plan Management)固定执行计划
固定执行计划-使用SPM(Sql Plan Management)固定执行计划 转载自:http://www.lunar2013.com/2016/01/固定执行计划-使用spm%EF%BC%88sq ...
随机推荐
- 状压dp-----三进制
三进制的状压dp要先预处理3^n以及每一个数的每一位 例题 hdu3001 题意: 给定n 个城市已经 m 条路 以及对应路费 c,要求遍历所有城市最少的路费,每个城市不能超过2次. 题解: 看代码吧 ...
- Storm消息容错机制(ack-fail机制)
storm消息容错机制(ack-fail) 1.介绍 在storm中,可靠的信息处理机制是从spout开始的. 一个提供了可靠的处理机制的spout需要记录他发射出去的tuple,当下游bolt处理t ...
- Vijos1605 NOIP2008 提高组T4 双栈排序 BFS
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - Vijos1605 题意概括 有1个1~n的排列,有2个栈,现在通过以下操作,使得出栈序列有序. 操作a 当前 ...
- eclipse无法添加tomcat
问题如图所示 就是选择对应的版本无法选择硬盘里面的tomcat文件 关闭Eclipse 删除WorkSpace目录下/.metadata/.plugins/org.eclipse.core.runti ...
- 6-3 矩阵链成 uva 442
较为简单的栈题 思路比较好 一次ac 1.char word :word=A:直接 a[word]=xxxx,不用 a[‘word’]=xxxx #include<bits/stdc++.h& ...
- 第四章: 4.1 logging模块 | 正则表达式
修改json数据然后写入json文件中 f = open('1234.json','r',encoding='utf-8') data = f.read() data1 = json.loads(da ...
- Mybatis动态公用sql
<select id="collPageCount" parameterType="java.util.Map" resultType="lon ...
- Biquads
From : http://www.earlevel.com/main/2003/02/28/biquads/ One of the most-used filter forms is the ...
- 002.Docker安装部署
一 docker安装-CentOS系统 1.1 docker自动安装脚本 root@docker:~# wget -qO- https://get.docker.com/ | sh 或—— root@ ...
- python3之Django表单(一)
1.HTML中的表单 在HTML种,表单是在<form>...</form>种的元素,它允许用户输入文本,选择选项,操作对象等,然后发送这些数据到服务器 表单元素允许用户在表单 ...