【ORACLE 执行计划】教程文章相关的互联网学习教程文章

ORACLE实际执行计划与预估执行计划不一致性能优化案例【代码】【图】

在一台ORACLE服务器上做巡检时,使用下面SQL找出DISK_READ最高的TOP SQL分析时,分析过程中,有一条SQL语句的一些反常现象,让人觉得很奇怪: SELECT SQL_ID, SQL_TEXT, DISK_READS, BUFFER_GETS, PARSING_SCHEMA_NAME, EXECUTIONS FROM V$SQLAREA ORDER BY DISK_READS DESC; 在SQL Developer中查看SQL的预估执行计划,发现执行计划走INDEX UNIQUE SCAN,而且IO COST其实不高。如下...

[转]看懂Oracle执行计划

本文系统来源:https://www.cnblogs.com/dirgo/p/8143270.html

oracle如何查看执行计划

1.在PL/SQL Developer中得到一个SQL的执行计划 输入想要查看执行计划的目标SQL,再按一下快捷键F5就可以了。2.explain plan 命令 explain plan for + 目标SQL select * from table(dbms_xplan.display)3. DBMS_XPLAN 包 1) select * from table(dbms_xplan.display_cursor(null,null,‘advanced‘)) 它用于在SQLPLUS中查看刚刚执行过的SQL的执行计划。这里所传入的第一个和第二个参数的值均为null,第三个参数的值是 advanced,第三...

oracle各种执行计划优缺点

一. 获取oracle执行计划的方法有6种,各自的优缺点如下,根据实际情况进行选择使用:explain plan for 方式步骤1:explain plan for 后跟着SQL语句 步骤2:select * from table(dbms_xplan.display()); 优点: 1.不需要真正的去执行语句,快捷方便缺点: 1.虽然快捷但是因为没有真正去运行,所以没有输出运行时的相关统计信息(逻辑读,递归调用,物理读)2.不知道被处理的行数3.不知道表被访问的次数set autotrace on 方式步骤1:...

Oracle - SPM固定执行计划(一)

for sql_id: 66a4184u0t6hn old 1: select * from table(dbms_xplan.display_cursor(‘&sql_id‘,null,‘TYPICAL PEEKED_BINDS‘)) new 1: select * from table(dbms_xplan.display_cursor(‘66a4184u0t6hn‘,null,‘TYPICAL PEEKED_BINDS‘))SQL_ID 66a4184u0t6hn, child number 0 ------------------------------------- select /*for_test*/ * from test1 where object_id = 1Plan hash value: 4122059633----------------...

Oracle 查询真实执行计划【代码】【图】

什么是真实执行计划 获取Oracle的执行计划,有几种方式。(本文使用Oracle 11g XE版本,以及普通用户scott登录)explain plan for 有两个步骤:explain plan for ${SQL} select * from table(dbms_xplan.display);这一个方法可以在PLSQLDev的cmd窗口和sql窗口执行,同时不需要给用户授权。 示例:autotrace 有两个步骤:set autot on 执行${SQL}但普通用户需要授权,才能执行。不了解授权过程,知道的同学可以留言。 并且在我的PLS...

数据库-Oracle通过执行计划查看查询语句是否使用索引【转】【代码】【图】

for select * from t_call_records where t_bjhm=‘123456‘备注:explain plan for后面为要生成执行计划的查询语句2.查看执行计划结果select * from table(dbms_xplan.display) 如上图所示,TABLE ACCESS FULL为全表扫描; 为t_bjhm列加上索引后生成执行计划并查看结果: 如上图所示,index range scan为索引范围扫描; 几种常见的索引类型扫描: 第一种:index unique scan 索引唯一扫描,当可以优化器发现某个查询条...

Oracle查看SQL执行计划1--explain plan

语法:explain plan for + 目标SQLselect * from table(dbms_xplan.display); eg:SQL> explain plan for select empno,ename,dname from scott.emp,scott.dept where emp.deptno=dept.deptno;Explained. SQL> set linesize 800SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT-----------------------------------------------------------------------------------------------Plan hash value: 844388907| Id...

Oracle里的执行计划

第二章:Oracle里的执行计划2.1 什么是执行计划Oracle用来执行目标SQL语句的这些步骤的组合就被称为执行计划。执行计划可以分为如下三个部分:1、目标SQL的正文、SQL ID和其执行计划所对应的的PLAN HASH VALUE。2、执行计划的主体部分。可以看到Oracle在执行目标SQL时所用的内部执行步骤,这些步骤的执行顺序,所对应的的谓词信息、列信息,优化器评估出来执行这些步骤后返回结果集的Cardinality、成本等内容。执行计划行前*字符指...

oracle执行计划(Explain Plan for

如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以断定是执行计划出了问题。2 3 4 5 看懂执行计划也就成了SQL优化的先决条件。 这里的SQL优化指的是SQL性能问题的定位,定位后就可以解决问题。6 7 8 9 10 11 一. 查看执行计划的三种方法12 13 1.1 设置aut...

Oracle 11g为SQL生成合适执行计划并固定

------------恢复内容开始------------ 1.查询当前SQL执行计划并固定 (1)查询指定SQL SQL_ID SQL> select sql_id,sql_text,version_count,parse_calls from v$sqlarea where sql_text like ‘%fundinfo%‘; SQL_ID SQL_TEXT VERSION_COUNT PARSE_CALLS------------- ----------------------------------------------------------------------...

oracle执行计划打印【代码】

下班逗猫闲得无聊,写写自己对几种oracle执行计划打印的认识。只是如何打印,对于如何查看执行计划有时间再写,毕竟9 10 6的人不配拥有太多。当然执行计划的打印方式很多,这只是其中几种。废话少说开始吧方式一:explain plan for使用explain plan for,这种查询方式适合查看单条执行SQL的执行计划。explain plan for的查看方式也有两种:1、 plsql的F5快捷键:登录plsql?按F5—>plsql会打开开一个窗口—>编写sql命名并执行—>会...

Oracle执行计划(3)-两表连接基数

Oracle 执行计划(3)- 两表连接基数 1 公式: 基数 = 连接选择率 * 过滤条件 1 基数 + 过滤条件 2 的基数 连接选择率 =((num_rows( 表 1)-num_nulls( 表 1 连接字段 ))/num_rows( 表 1))* ((num_rows( 表 2)-num_nulls( 表 2 连接字段 ))/num_rows( 表 2))Oracle 执行计划(3)-两表连接基数 1 公式: 基数= 连接选择率*过滤条件1基数+过滤条件2的基数连接选择率=((num_rows(表1)-num_nulls(表1连接字段))/num_rows(表1))*((nu...

oracle执行计划中NESTEDLOOPSSEMI(即半嵌套循环)的解释

在存在in的 子查询的 SQL语句和存在 EXISTS 的相关子查询的 SQL语句 的执行计划里,有NESTED LOOPS SEMI (即半嵌套循环)。 所谓的 NESTED LOOPS SEMI (即半嵌套循环) ,就是 the out query stops evaluating (评价, 求…的数 )the result set of the在存在in的子查询的SQL语句和存在EXISTS的相关子查询的SQL语句的执行计划里,有NESTEDLOOPS SEMI (即半嵌套循环)。所谓的NESTED LOOPS SEMI (即半嵌套循环),就是 the ou...

oracle执行计划

1,什么是执行计划 所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的详细方案。举个生活中的例子,我从珠海要去英国,我可以 选择先去香港然后转机,也可以先去北京转机,或者去广州也可以。但是到底怎样去英国划算,也就是我的费用最1,什么是执行计划 所谓执行计划,顾名思义,就是对一个查询任务,做出一份怎样去完成任务的详细方案。举个生活中的例子,我从珠海要去英国,我可以 选择先去香港然后转机,...