Oracle固定SQL的执行计划(二)(6)

zx@MYDB>select sql_handle,plan_name,origin,enabled,accepted,sql_text from dba_sql_plan_baselines where sql_text like 'select /*+ no_index(t2 idx_t2)%';

 

no rows selected

 

zx@MYDB>var temp number

zx@MYDB>exec :temp :=dbms_spm.load_plans_from_cursor_cache(sql_id=>'0n5z3wmf8qpgn',plan_hash_value=>1513984157);

 

PL/SQL procedure successfully completed.

 

zx@MYDB>select sql_handle,plan_name,origin,enabled,accepted,sql_text from dba_sql_plan_baselines where sql_text like 'select /*+ no_index(t2 idx_t2)%';

 

SQL_HANDLE             PLAN_NAME          ORIGIN         ENABLED   ACCEPTED  SQL_TEXT

------------------------------ ------------------------------ -------------------- --------- --------- ----------------------------------------------------------------------

SYS_SQL_75b06ae056223f5f       SQL_PLAN_7bc3aw1b24guzb860bcf2 MANUAL-LOAD     YES       YES       select /*+ no_index(t2 idx_t2) */ object_name,object_id from t2 where object_i

                                                       d=4

从上述显示目标SQL初始执行计划为全表扫描,sql_id和plan hash value可以从执行计划中找到,由于没有启用自动捕获SQL Plan Baseline,一开始没有查到目标SQL对应的SQL Plan Baseline,手工生成后,可以查到全表扫描对应的SQL Plan Baseline。

改写原目标SQL,加入Hint后重新执行:

zx@MYDB>select /*+ index(t2 idx_t2) */ object_name,object_id from t2 where object_id=4;

 

OBJECT_NAME        OBJECT_ID

------------------------------ ----------

TAB$                    4

 

zx@MYDB>select * from table(dbms_xplan.display_cursor(null,null,'advanced'));

 

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

SQL_ID  60txg87j30pvw, child number 0

-------------------------------------

select /*+ index(t2 idx_t2) */ object_name,object_id from t2 where

object_id=4

 

Plan hash value: 2008370210

 

--------------------------------------------------------------------------------------

| Id  | Operation          | Name   | Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT      |       |      |      |  335 (100)|       |

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1787440921fd2072f4f3026fef26f967.html