Oracle执行计划绑定

有时我们查询 gv$sql可以看出同一个SQL不同子游标的一些运行细节:

selet t.inst_id,t.sql_id,t.child_number,t.plan_hash_value,t.last_active_time,t.elapsed_time/100000/decode(t.executions,0,1,t.executions),t.elapsed_time/1000000,t.executions,t.sql_text from gv$sql t where sql_id=‘xxx‘

通过以上查询如果涉及同一个SQL运行信息差异很大的情况,基本就要去对应检查下,SQL是不是性能出了问题。

涉及sql中的一些绑定变量可以查询 gv$sql_bind_capture。

而执行计划的固定问题,这也根据特定的业务场景来,例如针对的sql里的对象数据基本无变动,特别是像一些历史分析数据。

执行计划固定的方法:outline、SQL Profile、SPM 这三者的区别这里我不做细述。以下我会针对SPM来做个演示.

待续。。。

https://blog.csdn.net/yangzhawen/article/details/44017271

原文地址:http://blog.51cto.com/2012ivan/2133789

时间: 2024-11-13 08:12:15

Oracle执行计划绑定的相关文章

Oracle执行计划并取得数据行

一个执行计划就是告诉Oracle对于每一个表对象使用哪种访问方法以及什么联接和联接顺序来将多个表联接到一起的一系列命令.执行计划中的每个步骤产生一个行源,然后与另外一个行源相联接,直到所有对象都被访问和联接. Oracle中的查询计划将会完成解析,绑定,执行和提取的步骤. Oracle每次访问数据块的时候,Oracle都会从该块中取出数据行然后在一次回路中返回给客户端.一次返回的行数是一个可配置的值称为列大小.列大小是一个网络回路中一次可以传输的可能行数.而列大小的设置可以是通过编程改变.在SQ

Oracle执行计划详解

 简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容. 并有总结和概述,便于理解与记忆! +++ 目录 --- 一.相关的概念 Rowid的概念 Recursive Sql概念 Predicate(谓词) DRiving Table(驱动表) Probed Table(被探查表) 组合索引(concatenated index) 可选择性(selectivity) 二.oracle访问数据的存取方法 1) 全表扫描(Full Table Scan

Oracle执行计划

Oracle执行计划 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二:怎样查看Oracle执行计划? 因为我一直用的PLSQL远程连接的公司数据库,所以这里以PLSQL为例: ①:配置执行计划需要显示的项: 工具  ->  首选项 ->   窗口类型  ->  计划窗口  ->  根据需要配置要显示在执行计划中的列

ORACLE 执行计划

有关oracle 执行计划几个不错的连接 执行计划的一些概念介绍:http://database.51cto.com/art/200611/34273.htm执行计划的例子:http://www.oracleblog.org/working-case/why-not-take-hash-join/执行计划的学习:http://wenku.baidu.com/view/aa01ba09581b6bd97f19eae9.html

如何看懂ORACLE执行计划

如何看懂Oracle执行计划 一.什么是执行计划 An explain plan is a representation of the access path that is taken when a query is executed within Oracle. 二.如何访问数据 At the physical level Oracle reads blocks of data. The smallest amount of data read is a single Oracle bloc

Oracle 执行计划(Explain Plan)

执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述.即就是对一个查询任务,做出一份怎样去完成任务的详细方案. 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题. 看懂执行计划也就成了SQL优化的先决条件. 通过执行计划定位性能问题,定位后就通过建立索引.修改sql等解决问题. 一.执行计划的查看 1.1 设置autotrace autotrace命令如下 序号 命令 解释 1 SET AUTOTRACE OFF 此为默认值,即关闭A

Oracle执行计划的查看

前言 一个系统在刚开始的时候,由于数据库中数据量不大,开发人员的主要精力都在业务与功能实现上.系统完成部署上线后随着时间的累积,每个表中的数据都在不断增长,我们往往会发现系统越来越慢,这可能是程序设计不合理,也可能是代码质量不高,也可能是业务流程问题,但是作为DBA或者负责数据库调优的工程师更应该想想是否是数据库方面的问题.数据库问题有很多种,作为开发人员主要关注SQL语句的合理性,至于数据库的其它问题可以暂时交给DBA去处理.对SQL语句调优,很重要的一点是查看SQL语句的执行计划.本文将简单

Oracle执行计划中的索引

Oracle执行计划根据索引的类型与where限制条件的不同,有5种类型的索引扫描,分别是:索引唯一扫描(index unique scan),索引范围扫描(index range scan),索引全扫描(index full scan),索引快速扫描(index fast full scan)索引跳跃式扫描 (index skip scan). 1.索引唯一扫描(index unique scan) 通过唯一索引查找一个数值经常返回单个ROWID.如果存在UNIQUE 或PRIMARY KEY

Oracle 执行计划中的buffer sort

Oracle 执行计划中的buffer sort实际上没有排序,只是把数据加载到内存,不扫描多次表. --制造数据 drop table test purge; drop table test1 purge; create table test as select * from dba_objects where rownum<10; create table test1 as select * from dba_objects where rownum<10; create index in