网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

查看执行计划的方法【在前人的基础上学习和总结】

exp:create table t1 as select * from dba_objects;

成都创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元栾城做网站,已为上家服务,为栾城各地企业和个人服务,联系电话:18980820575

       create table t2 as select * from dba_objects;

通常,在开发环境中,研究所"谱写"的sql的执行计划,还是很有必要的。

个人在学习和总结过程中,分析了下面这几种查看预估和实际执行计划的方法,并总结了下。

通常,我们在PL/SQL developer 中,运行oracle自带的执行计划查看方法就可以了[方法3]。

在命令行sqlplus 中,运用[方法1]就可以。

其他方法,可作为参考,理解语法即可。

        -----------------------------------------

方法1:sqlplus中

set autotrace on
select * from t1 where t1.object_id <=1000;
可以查看结果和执行计划以及统计信息;[若是sql改写的足够简单,可尝试用这种方法执行;比如查询内容换成count(1)]
set autotrace traceonly
select * from t1 where t1.object_id <=1000;

可以查看执行计划以及统计信息,且不执行sql;

-----------------------------------------

方法2:sql window 中
explain plan for
select * from t1 where t1.object_id <=1000;
select * from plan_table; --查看的不是太清晰,理解即可
select * from table(dbms_xplan.display);

        这种方法可以查看执行计划以及统计信息,且不执行sql;

        -----------------------------------------

方法3:快捷键(可以通过sql/plus dev默认的快捷键F5)
设置执行计划的快捷键的方法:

tools >>Preferences>>key Configuration >>File /New /Explain Plan Window exp: ctrl + 3 ||默认的  F5[使用习惯看个人,我习惯使用第一种快捷方法]

-----------------------------------------

方法4:通过数据字典v$sql和v$sql_plan查看
SELECT * from t1,t2 WHERE t1.object_id=t2.object_id;
select sql_text,sql_id,hash_value,child_number from v$sql where sql_text like '%SELECT * from t1,t2%';
select * from table(dbms_xplan.display_cursor('2rqyd7uh0g6pc/2684852908',child_cursor_number,'advanced'));
--当上面这种无法查出的时候,说明display_cursor没有收录,需要下面的方法查询

SELECT * from v$sql_plan WHERE sql_id = '2rqyd7uh0g6pc';

-----------------------------------------

方法5:通过dbms_xplan.display_awr查看
#VERSION_COUNT代表有几种不同的执行计划
SELECT * from t1,t2 WHERE t1.object_id=t2.object_id; select sql_text,sql_id,hash_value,child_number from v$sql where sql_text like '%select * from emp%'; #查看指定SQL的所有历史执行计划,前提是该SQL的执行计划被采集到AWR Repository中 select * from table(dbms_xplan.display_awr('sql_id'));

select * from table(dbms_xplan.display_awr('2rqyd7uh0g6pc'));

-----------------------------------------


文章题目:查看执行计划的方法【在前人的基础上学习和总结】
转载来于:http://bjjierui.cn/article/pggcog.html

其他资讯