如何获取真实的执行计划

简介:  验证 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事件获取真实的执行计划




目录
相关文章
|
7月前
|
存储 关系型数据库 MySQL
提高查询性能的秘密:深入剖析聚集、辅助、覆盖和联合索引
提高查询性能的秘密:深入剖析聚集、辅助、覆盖和联合索引
115 0
|
5月前
|
SQL
二次查询过程
【7月更文挑战第8天】
71 7
|
5月前
|
数据库连接 网络安全 数据库
阿里云云效操作报错合集之接口按迭代ID查询工作项查不到或查询结果不正确,是什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
LeetCode SQL专项练习 (7) 计算函数&分组统计
LeetCode SQL专项练习 (7) 计算函数&分组统计
131 0
|
存储 Oracle 关系型数据库
FAQ系列 | EXPLAIN执行计划中要重点关注哪些要素
FAQ系列 | EXPLAIN执行计划中要重点关注哪些要素
连接、查询出现的问题及解决方案(…
连接、查询出现的问题及解决方案(…
155 0
|
SQL Perl
升级执行计划比对
--大概的思路是将生产和回放的执行计划放到临时表里面,然后比对执行计划的关键字段,计算相等行数,看看是否与生产执行计划的行数和回放执行计划的行数一样。--如果一样则认为执行计划相等。 --下面例子是:将SPA回放与生产抓取的STS的性能数据及执行计划比对的完整记录 create table ...
910 0
|
SQL 索引 Go
通过手动创建统计信息优化sql查询性能案例
原文:通过手动创建统计信息优化sql查询性能案例 本质原因在于:SQL Server 统计信息只包含复合索引的第一个列的信息,而不包含复合索引数据组合的信息   来源于工作中的一个实际问题, 这里是组合列数据不均匀导致查询无法预估数据行数,从而导致无法选择合理的执行计划导致性能低下的情况 我...
844 0
|
SQL 算法 索引
SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)
原文:SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)   本文出处:http://www.cnblogs.com/wy123/p/6008477.html    关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里。
1053 0