科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道通过分析SQL语句的执行计划优化SQL(12)(2)

通过分析SQL语句的执行计划优化SQL(12)(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。

作者:limeinan 来源:赛迪网 2007年8月24日

关键字: 优化 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件

2.用explain plan命令

(1) sqlplus > @ ?\rdbms\admin\utlxplan.sql
(2) sqlplus > explain plan set statement_id =’???’
for select ………………

注意,用此方法时,并不执行sql语句,所以只会列出执行计划,不会列出统计信息,并且执行计划只存在plan_table中。所以该语句比起set autotrace traceonly可用性要差。需要用下面的命令格式化输出,所以这种方式我用的不多:

set linesize 150
set pagesize 500
col PLANLINE for a120
SELECT EXECORD EXEC_ORDER, PLANLINE 
FROM (SELECT PLANLINE, ROWNUM EXECORD, ID, RID 
FROM (SELECT PLANLINE, ID, RID, LEV 
FROM (SELECT lpad(' ',2*(LEVEL),rpad(' ',80,'     '))
||OPERATION||'  '||                 -- Operation 
DECODE(OPTIONS,NULL,'','('||OPTIONS || ') ')
||  -- Options 
DECODE(OBJECT_OWNER,null,'','OF '''|| OBJECT_OWNER
||'.')||  -- Owner 
DECODE(OBJECT_NAME,null,'',OBJECT_NAME|| ''' ')
|| -- Object Name 
DECODE(OBJECT_TYPE,null,'','('||OBJECT_TYPE|| ') ')
||  -- Object Type 
DECODE(ID,0,'OPT_MODE:')||       -- Optimizer 
DECODE(OPTIMIZER,null,'','ANALYZED','', OPTIMIZER)|| 
DECODE(NVL(COST,0)+NVL(CARDINALITY,0)+NVL(BYTES,0), 
0,null,' (COST='||TO_CHAR(COST)||',CARD='|| 
TO_CHAR(CARDINALITY)||',BYTES='||TO_CHAR(BYTES)||')') 
PLANLINE, ID, LEVEL LEV, 
(SELECT MAX(ID) 
FROM PLAN_TABLE PL2 
CONNECT BY PRIOR ID = PARENT_ID 
AND PRIOR STATEMENT_ID = STATEMENT_ID 
START WITH ID = PL1.ID 
AND STATEMENT_ID = PL1.STATEMENT_ID) RID 
FROM PLAN_TABLE PL1 
CONNECT BY PRIOR ID = PARENT_ID 
AND PRIOR STATEMENT_ID = STATEMENT_ID 
START WITH ID = 0 
AND STATEMENT_ID = 'aaa') 
ORDER BY RID, -LEV)) 
ORDER BY ID;
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章