Oracle 固定執行計劃--sqlprofile
步驟一-------------------------建立測試表,根據DBA_OBJECTS建立,OBJECT_ID上有索引 Create table test as select * from dba_objects; create index t_1 on test(test_id); 步驟二-------------------------檢視SQL預設執行計劃,走了索引 explain plan for select * from test where object_id= 172; select * from table(dbms_xplan.display(null,null,'outline')); ----通過指定outline可以獲取到系統為我們生成的hint ----------------------------------------------- | Id | Operation | Name | ----------------------------------------------- | 0 | SELECT STATEMENT | | | 1 | TABLE ACCESS BY INDEX ROWID| TEST | |* 2 | INDEX RANGE SCAN | T_1 | ----------------------------------------------- Outline Data ------------- /*+ BEGIN_OUTLINE_DATA INDEX_RS_ASC(@"SEL$1" "TEST"@"SEL$1
步驟六-------------------------刪除sql_profile,執行計劃用的是未改變slqprofile 之前的執行計劃
SQL> BEGIN DBMS_SQLTUNE.DROP_SQL_PROFILE(name => 'TEST'); END;