oracle spm使用1
有助于保持sql的语句特性,仅仅同意运行性能提高的运行计划。
它不同于stored outlines, spm在于稳定sql性能,而store outlines在于冻结sql运行计划
事列
1.启用optimizer_cature_sql_plan_baselines 捕获sql语句
SQL> alter session set optimizer_capture_sql_plan_baselines = true;
Session altered.
SQL> select * from objs where object_id = 2;
no rows selected
SQL> select * from objs where object_id = 2;
no rows selected
SQL> alter session set optimizer_capture_sql_plan_baselines = false;
Session altered.
2.查询dba_sql_plan_baselines,确定sql的spm状态
SQL> select plan_name, sql_handle, enabled, accepted, fixed,
2 module, sql_text
3 from dba_sql_plan_baselines;
PLAN_NAME SQL_HANDLE ENABLED ACCEPTED FIXED MODULE SQL_TEXT
------------------------------ -------------------- --------- --------- --------- -------------------- --------------------------------------------------
SQL_PLAN_4pzq3z6xcqkpwd0984253 SQL_4afec3f9bacb4abc YES YES NO SQL*Plus select * from objs where object_id = 2
3.添加索引改变环境再执行sql
SQL> alter session set optimizer_capture_sql_plan_baselines = true;
Session altered.
SQL> select * from objs where object_id = 2;
no rows selected
SQL> select * from objs where object_id = 2;
no rows selected
SQL> alter session set optimizer_capture_sql_plan_baselines = false;
Session altered.
4.查询dba_sql_plan_baselines
SQL> select plan_name, sql_handle, enabled, accepted, fixed, module, sql_text from dba_sql_plan_baselines;
PLAN_NAME SQL_HANDLE ENABLED ACCEPTED FIXED MODULE SQL_TEXT
------------------------------ -------------------- --------- --------- --------- -------------------- --------------------------------------------------
SQL_PLAN_4pzq3z6xcqkpwbe4c314c SQL_4afec3f9bacb4abc YES NO NO SQL*Plus select * from objs where object_id = 2
SQL_PLAN_4pzq3z6xcqkpwd0984253 SQL_4afec3f9bacb4abc YES YES NO SQL*Plus select * from objs where object_id = 2
SQL>
5.測试
SQL>
SQL> set autotrace on
SQL> select * from objs where object_id = 2;
no rows selected
Execution Plan
----------------------------------------------------------
Plan hash value: 954894094
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 98 | 247 (1)| 00:00:03 |
|* 1 | TABLE ACCESS FULL| OBJS | 1 | 98 | 247 (1)| 00:00:03 |
--------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("OBJECT_ID"=2)
Note
-----
- SQL plan baseline "SQL_PLAN_4pzq3z6xcqkpwd0984253" used for this statement
Statistics
----------------------------------------------------------
255 recursive calls
0 db block gets
1044 consistent gets
879 physical reads
0 redo size
1343 bytes sent via SQL*Net to client
513 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
28 sorts (memory)
0 sorts (disk)
0 rows processed
SQL> alter session set optimizer_use_sql_plan_baselines = false;
Session altered.
SQL> select * from objs where object_id = 2;
no rows selected
Execution Plan
----------------------------------------------------------
Plan hash value: 613004408
-----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 98 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| OBJS | 1 | 98 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | IDX_OBJSID_OBJS | 1 | | 1 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_ID"=2)
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
2 consistent gets
4 physical reads
0 redo size
1343 bytes sent via SQL*Net to client
513 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
能够看到当启动optimizer_user_sql_plan_baselines时走索引应该是最优的却没有使用
plan_name accecpt 为 no 影响了走索引计划
转载于:https://www.cnblogs.com/jhcelue/p/6857249.html
oracle spm使用1相关推荐
- oracle++spm,【SPM】Oracle计划管理器SPM介绍及用例
> Oracle SPM(Sql Plan Management) --by Firsouler 2021/03/25 #### 概述 Oracle11g之后推出的,SPM是一种主动稳定执行计划 ...
- oracle spm buffer get比较过程,Oracle 11g 新特性 -- SQL Plan Management 示例
一. SPM 说明 与Oracle 9i 的outline和10g 的profile比,Oracle 11g的SPM相对更加的灵活.如,一条带有绑定变量的SQL语句,最好的执行计划会根据绑定变量的值而 ...
- oracle++spm,ORACLE 11G 使用SPM来调整SQL语句的执行计划
跟大家说明一下: ITSM 数据库迁移升级到11G后,有几条SQL语句的执行计划不正确,而且这些语句都是使用绑定变量的. 最初的调整想法是获得这些的语句的绑定变量值,将获得的字面值直接替换SQL语句的 ...
- Oracle spm
SPM SQL PLAN BASEline MANUAL 1. var temp number; exec :temp:=dbms_spm.load_plans_from_cursor_cache(s ...
- spm oracle cloud,oracle11g新特点——SQLPlanManagement(SPM)-Oracle
1. 简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计数据 ...
- oracle 产看执行计划_ODBA 技能SPM计划
OBA技能1-获取执行计划 OBA技能2-执行计划顺序 OBA技能3-执行计划顺序表连接 ODBA 技能4实战执行计划 ODBA 技能5 固定执行计划 因为每次统计信息作业在收集完信息后,会触发ACS ...
- 熊军 oracle 迁移 spm,Oracle ---- 固定执行计划之SPM
今天终于说到了SPM,一个ORACLE官方推荐使用的SQL执行计划固定方法.为什么最常使用的方法最后说呢?因为介绍SPM使用方法的公开资料最多,ORACLE提供的接口也最丰富,用一篇几百字的小文进行说 ...
- 【DB笔试面试609】在Oracle中,SPM(SQL Plan Management,SQL计划管理)是什么?
♣题目 部分 在Oracle中,SPM(SQL Plan Management,SQL计划管理)是什么? ♣答案部分 Outline的缺点是太过死板,当数据量大幅度变化时无法做出相应的改变.SQL P ...
- spm oracle cloud,Expérience client
Aucun résultat trouvé Votre recherche n'a donné aucun résultat. Nous vous suggérons d'essayer ce qui ...
最新文章
- poi 合并单元格_POI数据获取脚本分享
- 创建程序集时元数据失败 -- 拒绝访问_kubectl 创建 Pod 背后到底发生了什么?
- 自定义控件:侧滑面板
- OpenCV学习笔记(一)(二)(三)(四)(五)
- CentOS安装Oracle12C
- qlineedit只能输入数字_Qt编写自定义控件51-可输入仪表盘
- assertion failed:concurrent update to the log .mutiple streaming jobs delete 4
- 深入Linux grep指令的详解(实用型)
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
- [Swift]检查API可用性
- 编译原理递归下降语法分析器C++实现
- 川农《组织行为学(本科)》21年12月作业考核
- 服务器瘦身linux,Linux系统桌面瘦身加速工具组trans-purge
- 海尔构建全球首个智能制造云平台COSMO
- python中步长_python步长什么意思
- 计算机网络:网络地址-MAC地址、IP地址、子网掩码
- 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字
- (电赛电源方向)怎么样从零开始准备全国大学生电子设计竞赛
- 学习笔记-零基础学习人工智能(0)
- 开源小程序CMS网站, JeeWx-App-CMS 1.0 首版本发布
热门文章
- PHP版本号--phpversion(),PHP_VERSION,PHP_VERSION_ID
- Swift - 14 - 字符串的基础操作
- 【android】如何让WebView对Video标签的支持更强力
- centos 6.5 安装 redis
- SQLServer禁用、启用外键约束
- 有关phpmailer的详细介绍及使用方法
- Android系统源代码下载
- Android编译Libwebcore出错解决方法
- 基于stm32智能风扇_一款基于STM32的智能灭火机器人设计
- 央视网报道“手机就能打到拖拉机”,网友直呼“想种地了”