Oracle Study--Oracle SQL执行计划查看(MindMap)650) this.width=650;" src="/upload/getfiles/default/2022/11/8/20221108040803599.jpg" title="Oracle执行计划查看.png" />本文出自 “天涯客的blog” 博客,请务必保留此出处http://tiany.blog.51cto.com/513694/1899950原文:http://tiany.blog.51cto.com/513694/1899950
Oracle执行计划突变诊断之统计信息收集问题1. 情形描述DB version:11.2.0.4WITH SQL1 AS
(SELECT LAC,
CI,
TO_NUMBER(C.LONGITUDE) LONGITUDE,
TO_NUMBER(C.LATITUDE) LATITUDE
FROM MB_SYS_CELL_INFO C
WHERE C.CONTY_NAME = ‘道孚县‘),
SQL2 AS
(SELECT DISTINCT IMSI, LAC, CI
FROM MB_BSS_USER_LOCATION
WHERE HOUR IN (16, 15, 14, 13)
AND TIME = TO_TIMESTAMP(‘20170...
转载:https://www.cnblogs.com/Dreamer-1/p/6076440.html一:什么是Oracle执行计划?执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二:怎样查看Oracle执行计划?因为我一直用的PLSQL远程连接的公司数据库,所以这里以PLSQL为例:①:配置执行计划需要显示的项:工具 —> 首选项 —> 窗口类型 —> 计划窗口 —> 根据需要配置要显示在执行计划中的列执行计划的常用列字段解释:基数(Rows):Oracle估计的...
有时开发进行表结构设计,对表字段是否为空过于随意,出现诸如id1=id2,如果允许字段为空,因为Oracle中空值并不等于空值,有可能得到意料之外的结果。除此之外,最关键的是,NULL会影响oracle的执行计划。以下为NULL影响执行计划的测试示例。/*1.构建test表,其中create table方式建立的test表结构object_id非空*,走索引/SELECT Count(*) FROM all_objects WHERE object_id IS NOT NULL; --41790笔DROP TABLE test;CREATE TABLE ...
有关Oracle 的执行计划说明,参考:Oracle Explain Plan 有关Oracle 的执行计划说明,参考:Oracle Explain Plan 见
一. 查看当前session 的SIDSYS@anqing1(rac1)> SELECT USERENV(SID) FROM DUAL;USERENV(SID)--------------137SYS@anqing1(rac1)> SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;SID----------137
二. 查看缓存中的Explain Plan1)根据SID,从v$sql中找到相应SQL的HASH_VALUE和ADDRESS/* Formatted on 2011/6/20 1...
在Oracle里第一次执行一条SQL语句后,该SQL语句会被硬解析,而且执行计划和解析树会被缓存到Shared Pool里。方便以后再次执行这条SQL语句时不需要再做硬解析,方便应用系统的扩展。但是如果该SQL对应的表数据量突变或其他原因,Shared Pool里缓存的执行计划和解析树已经不再适用于现在的情况,SQL执行效率急速下降,这种情况下就需要把该SQL缓存在Shared Pool里的执行计划和解析树清理出去,以便对该SQL重新做硬解析,生成新的执行...
定义
执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。组成目标SQL的正文、sql_id和执行计划对应的plan_hash_value执行计划主体,主要有内部执行步骤、执行顺序、谓词信息、列信息、Cardinality、Cost等执行计划的额外补充信息,是否动态采用(dynamic sampling)、是否Cardinality Feedback、是否SQL Profile模块解读
主体HeaderID:序号
Operation: 当前操作的内容
Rows: 当前操作的Cardinality,Oracle估计当前...
命令解释1SET AUTOTRACE OFF此为默认值,即关闭Autotrace 2SET AUTOTRACE ON EXPLAIN只显示执行计划3SET AUTOTRACE ON STATISTICS只显示执行的统计信息4SET AUTOTRACE ON包含2,3两项内容5SET AUTOTRACE TRACEONLY与ON相似,但不显示语句的执行结果1.2 使用SQL
在执行的sql前面加上EXPLAIN PLAN FORSQL> EXPLAIN PLAN FOR SELECT * FROM EMP;已解释。SQL> SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY(‘PLAN_TABLE‘))...
背景知识: 为了更好的进行下面的内容我们必须了解一些概念性的术语:共享sql语句 为了不重复解析相同的SQL语句(因为解析操作比较费资源,会导致性能下降),在第一次解析之后,ORACLE将SQL语句及解析后得到的执行计划存放在内存中。这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。因此,当你执行一个SQL语句(有时被称为一个游标)时,如果该语句和之前的执...
1.SET AUTOTRACE OFF 没有执行计划,是oracle的默认情况;
2.SET AUTOTRACE ON EXPLAIN 只有执行计划,没有统计部分;
3.SET AUTOTRACE ON STATISTICS 只有sql语句执行的统计部分无执行计划;
4.SET AUTOTRACE ON 既有执行计划又有sql语句执行的统计部分;
5.SET AUTOTRACE TRACEONLY 跟SET AUTOTRACE ON一样,但是没有sql执行数据的输出;oracle执行计划标签:本文系统来源:http://www.cnblogs.com/lele88lala/p/4677401....
1、PL/SQL解释计划窗口
优点:方面
缺点:看到信息有限
2、explain_plan for
针对某个句子优化较方便
3、sqlplus
Sqlplus里输入命令:
set autotrace onselect * from emp;
数据显示出来后,跟着执行计划:
这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。
如果不想执行语句而只是想得到执行计划可以采用:
set autotrace traceonly
如...
三、SQL_TRACE SQL_TRACE是Oracle的一个非常强大的工具。打开SQL_TRACE就可以逐步捕获任何一个会话的数据库活动,或者捕获整个数据库的活动,并将数据库活动记录成跟踪文件。每次使用完之后需要关闭跟踪,否则会降低系统的性能。跟踪整个数据库实例。 只需要简单的修改参数文件(pfile/spfile)参数 SQL_TRACE = TRUE ,在全局启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及所有用户进程,这样也会数据库导致性能下降比较...
MISSES IN library cache during parse:1
翻译:发生在解析的硬解析数量为1,表示硬解析
MISSES IN library cache during parse:0
翻译:发生在解析的硬解析数量为0,表示没有硬解析,即为软件解析,一般发生在绑定变量的sql语句执行的时候
注:
1、硬解析:首先是语法分析,然后是语义分析,其次是sql执行计划,最后是执行语句。
2、软解析:在oracle的共享池中搜到之前执行成功的sql语句,直接执行sql语句,跳过了语法分析、语...
SQL的执行计划实际代表了目标SQL在Oracle数据库内部的具体执行步骤,作为调优,只有知道了优化器选择的执行计划是否为当前情形下最优的执行计划,才能够知道下一步往什么方向。
执行计划的定义:执行目标SQL的所有步骤的组合。
我们首先列出查看执行计划的一些常用方法:
1. explain plan命令
PL/SQL Developer中通过快捷键F5就可以查看目标SQL的执行计划了。但其实按下F5后,实际后台调用的就是explain plan命令,相当于封装了...
有关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.htmlORACLE 执行计划标签:本文系统来源:http://www.cnblogs.com/adolfmc/p/4796268.html