Oracle - SPM固定执行计划
1. 通过dbms_xplan.display_cursor查看指定sql都有哪些执行计划
SQL> select * from table(dbms_xplan.display_cursor('&sql_id',null,'TYPICAL PEEKED_BINDS'));
2. 查询该sql的历史执行情况
SQL> col snap_id for 99999999                                                                                    
 SQL> col date_time for a30                                                                                       
 SQL> col plan_hash for 9999999999                                                                                
 SQL> col executions for 99999999                                                                                 
 SQL> col avg_etime_s heading 'etime/exec' for 9999999.99                                                         
 SQL> col avg_lio heading 'buffer/exec' for 99999999999                                                           
 SQL> col avg_pio heading 'diskread/exec' for 99999999999                                                         
 SQL> col avg_cputime_s heading 'cputim/exec' for 9999999.99                                                      
 SQL> col avg_row heading 'rows/exec' for 9999999                                                                 
 SQL> select * from(                                                                                              
 select distinct                                                                                             
 s.snap_id,                                                                                                  
 to_char(s.begin_interval_time,'mm/dd/yy_hh24mi') || to_char(s.end_interval_time,'_hh24mi') date_time,       
 sql.plan_hash_value plan_hash,                                                                              
 sql.executions_delta executions,                                                                            
 (sql.elapsed_time_delta/1000000)/decode(sql.executions_delta,null,1,0,1,sql.executions_delta) avg_etime_s,  
 sql.buffer_gets_delta/decode(sql.executions_delta,null,1,0,1,sql.executions_delta) avg_lio,                 
 sql.disk_reads_delta/decode(sql.executions_delta,null,1,0,1,sql.executions_delta) avg_pio,                  
 (sql.cpu_time_delta/1000000)/decode(sql.executions_delta,null,1,0,1,sql.executions_delta) avg_cputime_s,    
 sql.rows_processed_total/decode(sql.executions_delta,null,1,0,1,sql.executions_delta) avg_row               
 from dba_hist_sqlstat sql, dba_hist_snapshot s                                                              
 where sql.instance_number =(select instance_number from v$instance)                                         
 and sql.dbid =(select dbid from v$database)                                                                 
 and s.snap_id = sql.snap_id                                                                                 
 and sql_id = trim('&sql_id') order by s.snap_id desc)                                                       
 where rownum <= 100;
3. 绑定执行计划
从前两步中可以看到该sql有两条执行计划,假如plan_hash_value为’2214001748’才是对的,而此时数据库选择的是另一条执行计划,我们可以通过执行以下function去将执行计划固定为我们想要的。
SQL> var temp number;
 SQL> begin
 :temp := dbms_spm.load_plans_from_cursor_cache(sql_id=>'66a4184u0t6hn', plan_hash_value=>2214001748);
 end;
 /
--转自
Oracle - SPM固定执行计划(一) 
https://www.cnblogs.com/ddzj01/p/11365541.html
Oracle - SPM固定执行计划(二) 
https://www.cnblogs.com/ddzj01/p/11377049.html
Oracle - SPM固定执行计划的更多相关文章
- Oracle - SPM固定执行计划(一)
		
一.前言 生产中偶尔会碰到一些sql,有多种执行计划,其中部分情况是统计信息过旧造成的,重新收集下统计信息就行了.但是有些时候重新收集统计信息也解决不了问题,而开发又在嗷嗷叫,没时间让你去慢慢分析原因 ...
 - Oracle - SPM固定执行计划(二)
		
一.前言 前面文章(https://www.cnblogs.com/ddzj01/p/11365541.html)给大家介绍了当一条sql有多个执行计划时,如何通过spm去绑定其中一条执行计划.本文将 ...
 - SQL Server如何固定执行计划
		
SQL Server 其实从SQL Server 2005开始,也提供了类似ORACLE中固定执行计划的功能,只是好像很少人使用这个功能.当然在SQL Server中不叫"固定执行计划&qu ...
 - Oracle 固定执行计划-使用SPM(Sql Plan Management)固定执行计划
		
固定执行计划-使用SPM(Sql Plan Management)固定执行计划 转载自:http://www.lunar2013.com/2016/01/固定执行计划-使用spm%EF%BC%88sq ...
 - 基于Oracle的SQL优化(崔华著)-整理笔记-第2章“Oracle里的执行计划”
		
详细介绍了Oracle数据里与执行计划有关的各个方面的内容,包括执行计划的含义,加何查看执行计划,如何得到目标SQL真实的执行计划,如何查看执行计划的执行顺序,Oracle数据库里各种常见的执行计划的 ...
 - 固定执行计划-SQL PROFILE手工绑定
		
固定(稳定)执行计划 你的应用的功能时快时慢,变化比较大,功能的性能能够保持一种稳定的状态,ORACLE 固定执行计划,采用以下这几种方式 oracle 9i使用 Outline oracle 10g ...
 - Oracle中获取执行计划的几种方法分析
		
以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下 1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...
 - Oracle查看SQL执行计划的方式
		
Oracle查看SQL执行计划的方式 获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式: 基本有以下几种方式: ...
 - Oracle性能优化之Oracle里的执行计划
		
一.执行计划 执行计划是目标SQL在oracle数据库中具体的执行步骤,oracle用来执行目标SQL语句的具体执行步骤的组合被称为执行计划. 二.如何查看oracle数据库的执行计划 oracle数 ...
 
随机推荐
- python操作s3服务中的文件
			
亚马逊云aws提供了s3服务.国内一些云厂商也用了s3技术.要操作s3服务器中的文件需要用到boto这个python包.下面的代码是一个简单例子. #! /usr/bin/python # -*-co ...
 - solr集群与项目实战
			
什么是 SolrCloud : SolrCloud(solr 云)是 Solr 提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时 ...
 - 在Linux中配置jdk,Tomcat,MySQL
			
解压缩: tar 命令 : 使用方式 tar [参数] source [target] source - 压缩文件 target - 解压缩后的目标位置, 默认解压到当前目录 常用写法 : 解压缩 : ...
 - dotnet core gbk 编码错误解决方案
			
.Net Core GBK解码 1.添加引用 System.Text.Encoding.CodePages 2.注册 Encoding.RegisterProvider(CodePagesEnco ...
 - Selenium之单选框操作
			
单选框操作: 何为单选框?就是永远只能选中一个选项的意思.一般单选框的图标都是呈圆形的.我们通过selenium可直接定位到被选中的选项上,然后用click方法实现点击. 下面附上一段rb.html代 ...
 - Postman 关联接口测试(带有token鉴权)
			
Postman 关联接口测试(带有token鉴权) 一.登陆接口 创建一个request请求 在Tests中添加JavaScript代码,用来获取鉴权 pm.test("V2", ...
 - 【Vuejs】350- 学习 Vue 源码的必要知识储备
			
前言 我最近在写 Vue 进阶的内容.在这个过程中,有些人问我看 Vue 源码需要有哪些准备吗?所以也就有了这篇计划之外的文章. 当你想学习 Vue 源码的时候,需要有扎实的 JavaScript 基 ...
 - 《一头扎进》系列之Python+Selenium框架设计篇1-什么是自动化测试框架-价值好几K的框架,不看别后悔,过时不候
			
1. 什么是自动化测试框架 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另一种定义认为,框架是可被应用开发者定制的 ...
 - JS数据结构——队列
			
创建一个自己的类来表示一个队列 function Queue() { //这里写属性和方法 } 首先需要一个用于存储队列中元素的数据结构,可以用数组 let items = [] 接下来声明一些队列可 ...
 - IIS中部署网站
			
1.安装开IIS,打开IIS(Win+R -->inetmgr.exe) 2.进入IIS主界面,右键网站,选择“添加网站”. 3.在“添加网站”对话框中,添加网站名称. 4.点击应用程序池选择, ...