如何获取真实的执行计划

简介:  验证 explain plan命令   与  set autotrace命令  是否为真实执行计划       0  CONN /AS SYSDBA;              1  create table t1 as select * from dba_objects;           2  insert into t1 select * from t1;     

 验证 explain plan命令   与  set autotrace命令  是否为真实执行计划

      0  CONN /AS SYSDBA;     

 

      1  create table t1 as select * from dba_objects;

   

      2  insert into t1 select * from t1;

 

      3   commit;

 

      4   select count(1) from t1;

 

      5   create index idx_t1 on t1(object_id);

        --收集统计信息

      6   exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'T1',estimate_percent=> 100,cascade=> true);

      

      7   select * from table(dbms_xplan.display);

 

      

 

     

      8 

    

VAR X NUMBER;

VAR Y NUMBER;

EXEC :X :=0;

EXEC:Y :=100000;

 

        --explain命令

        EXPLAIN  PLAN FOR SELECT count(*) from t1 where object_id between :x and :y;

 

        select * from table(dbms_xplan.display);

 

       

 

          显示走idx_t1索引范围(range)扫描

 

        select count(*) from t1 where object_id between :x and :y;

 

        --dbms_xplan.display_cursor(null,null,'ADVANCED')  得到真实执行计划

        select * from table(dbms_xplan.display_cursor(null,null,'ADVANCED'));

 

 

 

 

 

        

Index fast full  快速全扫描

 

 

---set autotrace traceonly 验证

 

Set autotrace traceonly

Select count(*) from t1 where object_id between :x and :y;



 

 显示走idx_t1索引范围(range)扫描

 

结论:使用set autotrace,set autotrace 源于explain plan是不准确的,特别是绑定变量下查询是不准确的

-dbms_xplan.display_cursor(null,null,'ADVANCED') 

和10046事件获取真实的执行计划




目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
如何确认SQL查询是否使用了索引:详细步骤与技巧
在数据库管理和优化中,确认SQL查询是否有效利用了索引是提升性能的关键步骤
|
6月前
|
SQL 运维 分布式计算
DataWorks产品使用合集之ODPPS中如何使用SQL查询从表中获取值并将其赋值给临时变量以供后续使用
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
6月前
|
SQL
二次查询过程
【7月更文挑战第8天】
75 7
|
域名解析 负载均衡 网络协议
信息收集——绕过CDN查找真实IP(最实用的方法)
信息收集——绕过CDN查找真实IP(最实用的方法)
5867 0
信息收集——绕过CDN查找真实IP(最实用的方法)
|
SQL Arthas druid
MyBtais 批量插入慢排查及分析(后续)
MyBtais 批量插入慢排查及分析(后续)
199 0
|
自然语言处理 算法 数据库
简述数据库执行查询请求的过程
当数据库接收到查询请求后,首先需要对查询语句进行解析。这个过程包括词法分析和语法分析,将查询语句转化为内部数据结构,以便后续处理。
175 0
|
传感器 存储 安全
ADAS如何获取和记录数据
ADAS如何获取和记录数据
ADAS如何获取和记录数据
|
关系型数据库 MySQL Shell
数据库学习- 查询数据 (多条件)作业示例【带源码】
MySQL数据库 “查询数据 (多条件)” 习题示例,包含源码,能建立起对于查询数据 (多条件)的基本概念
283 0
数据库学习- 查询数据 (多条件)作业示例【带源码】
|
SQL Oracle 关系型数据库
SQL为什么预估执行计划与真实执行计划会有差异?
SQL为什么预估执行计划与真实执行计划会有差异?http://www.bieryun.com/3149.html 一 问题概要 对同一个 SQL 语句的 ExplainPlan 里显示的预估执行计划与通过 V$SQL_PLAN 视图获取的 Runtime Plan 真实执行计划,偶尔会发现两边有不一致的情况,为什么呢?为什么预估执行计划会不准确?怎样才能避免这种情况的发生? 二 问题解答 这是执行计划相关中会被经常问道的问题,也是困扰自己很长时间的问题。
1495 0