查看sql语句的执行计划

本文介绍如何使用EXPLAINPLAN工具分析SQL语句的执行计划。通过该工具可以了解Oracle数据库如何连接表、采用哪种扫描方式及使用的索引等信息。文章还提供了一个具体的案例,展示如何设置、查看和解析SQL执行计划。

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

EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称.
你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将被首先执行.
NESTED LOOP是少数不按照上述规则处理的操作, 正确的执行路径是检查对NESTED LOOP提供数据的操作,其中操作号最小的将被最先处理.

1.执行

explain plan set statement_id='test_sql_plan_0001' for
select * from table_name'

2.查看sql执行计划


   SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID  
    FROM PLAN_TABLE  a  
    WHERE STATEMENT_ID='test_sql_plan_0001'  
    ORDER BY Id; 

3.查看执行结果

    OPERATION   OPTIONS OBJECT_NAME OBJECT_TYPE ID  PARENT_ID
1   SELECT STATEMENT                0   
2   HASH JOIN   OUTER           1   0
3   HASH JOIN               2   1
4   TABLE ACCESS    BY INDEX ROWID  TRD_CMMD_SEND_RELATION  TABLE   3   2
5   BITMAP CONVERSION   TO ROWIDS           4   3
6   BITMAP AND              5   4
7   BITMAP INDEX    SINGLE VALUE    IDX_CMMD_ID INDEX (BITMAP)  6   5
8   BITMAP INDEX    SINGLE VALUE    IDX_RELATION    INDEX (BITMAP)  7   5
9   TABLE ACCESS    FULL    TRD_PLAT_ORG    TABLE   8   2
10  TABLE ACCESS    FULL    TRD_PROJECT_ORG TABLE   9   1

4.分析
根据sql执行计划,调优sql语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值