oracle11g new feature SPM
有助于保持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相关推荐

  1. oracle++spm,【SPM】Oracle计划管理器SPM介绍及用例

    > Oracle SPM(Sql Plan Management) --by Firsouler 2021/03/25 #### 概述 Oracle11g之后推出的,SPM是一种主动稳定执行计划 ...

  2. oracle spm buffer get比较过程,Oracle 11g 新特性 -- SQL Plan Management 示例

    一. SPM 说明 与Oracle 9i 的outline和10g 的profile比,Oracle 11g的SPM相对更加的灵活.如,一条带有绑定变量的SQL语句,最好的执行计划会根据绑定变量的值而 ...

  3. oracle++spm,ORACLE 11G 使用SPM来调整SQL语句的执行计划

    跟大家说明一下: ITSM 数据库迁移升级到11G后,有几条SQL语句的执行计划不正确,而且这些语句都是使用绑定变量的. 最初的调整想法是获得这些的语句的绑定变量值,将获得的字面值直接替换SQL语句的 ...

  4. Oracle spm

    SPM SQL PLAN BASEline MANUAL 1. var temp number; exec :temp:=dbms_spm.load_plans_from_cursor_cache(s ...

  5. spm oracle cloud,oracle11g新特点——SQLPlanManagement(SPM)-Oracle

    1. 简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计数据 ...

  6. oracle 产看执行计划_ODBA 技能SPM计划

    OBA技能1-获取执行计划 OBA技能2-执行计划顺序 OBA技能3-执行计划顺序表连接 ODBA 技能4实战执行计划 ODBA 技能5 固定执行计划 因为每次统计信息作业在收集完信息后,会触发ACS ...

  7. 熊军 oracle 迁移 spm,Oracle ---- 固定执行计划之SPM

    今天终于说到了SPM,一个ORACLE官方推荐使用的SQL执行计划固定方法.为什么最常使用的方法最后说呢?因为介绍SPM使用方法的公开资料最多,ORACLE提供的接口也最丰富,用一篇几百字的小文进行说 ...

  8. 【DB笔试面试609】在Oracle中,SPM(SQL Plan Management,SQL计划管理)是什么?

    ♣题目 部分 在Oracle中,SPM(SQL Plan Management,SQL计划管理)是什么? ♣答案部分 Outline的缺点是太过死板,当数据量大幅度变化时无法做出相应的改变.SQL P ...

  9. 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 ...

最新文章

  1. poi 合并单元格_POI数据获取脚本分享
  2. 创建程序集时元数据失败 -- 拒绝访问_kubectl 创建 Pod 背后到底发生了什么?
  3. 自定义控件:侧滑面板
  4. OpenCV学习笔记(一)(二)(三)(四)(五)
  5. CentOS安装Oracle12C
  6. qlineedit只能输入数字_Qt编写自定义控件51-可输入仪表盘
  7. assertion failed:concurrent update to the log .mutiple streaming jobs delete 4
  8. 深入Linux grep指令的详解(实用型)
  9. 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
  10. [Swift]检查API可用性
  11. 编译原理递归下降语法分析器C++实现
  12. 川农《组织行为学(本科)》21年12月作业考核
  13. 服务器瘦身linux,Linux系统桌面瘦身加速工具组trans-purge
  14. 海尔构建全球首个智能制造云平台COSMO
  15. python中步长_python步长什么意思
  16. 计算机网络:网络地址-MAC地址、IP地址、子网掩码
  17. 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字
  18. (电赛电源方向)怎么样从零开始准备全国大学生电子设计竞赛
  19. 学习笔记-零基础学习人工智能(0)
  20. 开源小程序CMS网站, JeeWx-App-CMS 1.0 首版本发布

热门文章

  1. PHP版本号--phpversion(),PHP_VERSION,PHP_VERSION_ID
  2. Swift - 14 - 字符串的基础操作
  3. 【android】如何让WebView对Video标签的支持更强力
  4. centos 6.5 安装 redis
  5. SQLServer禁用、启用外键约束
  6. 有关phpmailer的详细介绍及使用方法
  7. Android系统源代码下载
  8. Android编译Libwebcore出错解决方法
  9. 基于stm32智能风扇_一款基于STM32的智能灭火机器人设计
  10. 央视网报道“手机就能打到拖拉机”,网友直呼“想种地了”