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 ...
随机推荐
- POJ 2385 Apple Catching【DP】
题意:2棵苹果树在T分钟内每分钟随机由某一棵苹果树掉下一个苹果,奶牛站在树#1下等着吃苹果,它最多愿意移动W次,问它最多能吃到几个苹果.思路:不妨按时间来思考,一给定时刻i,转移次数已知为j, 则它只 ...
- webstrom的热更新没效果
webstorm保存的时候会先保存到临时文件中,其实并没有真正保存,要在setting->stystem settings下的“use save write”去掉
- ubuntu axel
ubuntu下rar解压工具安装方法: 压缩功能 安装 sudo apt-get install rar 卸载 sudo apt-get remove rar 解压功能 安装 sudo apt-get ...
- mydumper下载安装
下载地址 https://github.com/maxbube/mydumper [root@gg ~]#cd mydumper [root@gg mydumper]# cmake . -bash ...
- 逃离迷宫 HDU1728 (bfs)
和连连看非常相似 都是求转向的BFS 改了一下就上交了... #include<cstdio> #include<cstring> #include<algorith ...
- 8. 博客系统| 富文本编辑框和基于bs4模块防御xss攻击
views.py @login_required def cn_backend(request): article_list = models.Article.objects.filter(user= ...
- Python Django 学习 (二) 【Django 模型】
注: 由于自己排版确实很难看,本文开始使用markdown编辑,希望有所改善 官方定义 A model is the single, definitive source of information ...
- html+css基础知识
这是自己学习html时候做的一些记录,供大家参考 <!-- 块和内联 块元素:独占一行的元素 div p h ul div没有任何语义,就是一个纯粹的快元素 就是为了方便布局 span是内联元素 ...
- js基础梳理-究竟什么是变量对象,什么是活动对象?
首先,回顾下上篇博文中js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?的执行上下文的生命周期: 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable o ...
- 使用perf工具导致系统hang死的原因
[perf工具导致系统hang住的原因是触发了低版本kernel的bug] 今天在测试服务器做压测,运行perf record做性能分析时,系统再次hang住了,这次在系统日志中记录了一些有用的信息, ...