首页 > 学院 > 开发设计 > 正文

oracle执行计划

2019-11-08 20:35:56
字体:
来源:转载
供稿:网友

查看Oracle执行计划的三种方式:

1、利用PL/SQL Developer工具获取

在SQL windows写好sql,然后通过F5快捷键获取执行计划,如果是已经执行过的sql,可以通过V$SQL_PLAN视图查看已经被执行过的sql的执行计划

2、使用sql语句获取执行计划

SQL> explain plan for select * from dual;已解释。SQL> SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 4017058736--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 || 1 | TABLE access FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |--------------------------------------------------------------------------已选择8行。SQL>

或者

SQL> explain plan for select * from dual;已解释。SQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 4017058736--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 || 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |--------------------------------------------------------------------------已选择8行。SQL>

3、设置autotrace

SQL> set autotrace on;SQL> select * from dual;DU--X执行计划----------------------------------------------------------Plan hash value: 4017058736--------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 || 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |--------------------------------------------------------------------------统计信息---------------------------------------------------------- 1 recursive calls 0 db block gets 3 consistent gets 0 physical reads 0 redo size 339 bytes sent via SQL*Net to client 358 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 1 rows PRocessedSQL>

autotrace相关设置说明

序号 命令 含义
1 SET AUTOTRACE OFF 默认值,即关闭autotrace,显示sql的执行结果
2 SET AUTOTRACE ON EXPLAIN 只显示执行计划
3 SET AUTOTRACE ON STATISTICS 只显示统计信息
4 SET AUTOTRACE ON 显示sql执行结果,执行计划,统计信息
5 SET AUTOTRACE TRACEONLY 显示sql执行计划,统计信息,但不显示执行结果

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表