Oracle sql profile

Da Emigar.
Jump to navigation Jump to search

SQL Baseline Plan (SPM)

Per forzare un piano di esecuzione trovato nella sql cursor cache, di cui si conosce l'hash value: Cerca il piano di esecuzione con:

--
set autotrace off
set pagesize 200
set linesize 200
select DBMS_LOB.substr(sql_fulltext, 3000) from v$sql where sql_id = '&1';
select * from table(DBMS_XPLAN.DISPLAY_CURSOR(sql_id=>'&1',cursor_child_no=>&2));

Trovato l'hash value, si può stabilizzare con:

--
declare
 my_plans pls_integer;
begin
 my_plans:=DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE(SQL_ID=>'&1',PLAN_HASH_VALUE=>'&2',FIXED=>'YES',ENABLED=>'YES');
end;
/