Oracle执行计划命令

本文介绍了在Oracle数据库中如何查看SQL语句的执行计划,包括使用`explain plan for`命令预览计划,通过`dbms_xplan.display`获取详细信息,并在提示PLAN_TABLE版本过旧时如何重建表格。此外,还展示了执行计划的结构和PredicateInformation。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果在命令行中,建议使用这种方法.

set autotrace on

加上这个set命令后,执行任何SQL语句都会把执行计划和统计信息显示出来.

注意 : 这重方式每次都执行SQL语句,而下面的方法实际上并没有执行SQL语句.

看下面小练习,告诉你如何用oracle命令查看执行计划.

1.想要查看执法计划的SQL语句:

explain plan for select t.*, t.rowid from A5 t where t.l = '101214' and t.k like '%8号' order by i ;

2.查看此SQL语句的执行计划:

select * from table(dbms_xplan.display);

执行结果如下:

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1156097717
---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |        |    12 |  1524 |    71   (3)| 00:00:01 |
|   1 |  SORT ORDER BY      |        |    12 |  1524 |    71   (3)| 00:00:01 |
|*  2 |   TABLE ACCESS FULL| A5   |    12 |  1524 |    70   (2)| 00:00:01 |
----------------------------------------------------------------------------
Note
-----
   - 'PLAN_TABLE' is old version
 
12 rows selected

'PLAN_TABLE' is old version : 这句话告诉我们,PLAN_TABLE的版本太旧,需要重新生成.

3.重新生成PLAN_TABLE表:

    -- 删除表
    drop table PLAN_TABLE;
    -- 新建表
    @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlxplan.sql;

4.查看执行计划:

select * from table(dbms_xplan.display);

结果如下:

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 1156097717
---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |    12 |  1524 |    71   (3)| 00:00:01 |
|   1 |  SORT ORDER BY     |      |    12 |  1524 |    71   (3)| 00:00:01 |
|*  2 |   TABLE ACCESS FULL| A5   |    12 |  1524 |    70   (2)| 00:00:01 |
---------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter("T"."L"='101214' AND "T"."K" LIKE '%8号')
 
14 rows selected

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直在奔跑丶

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值