查看sql语句的执行计划

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语句

你可能感兴趣的:(oracle,sql)