Oracle SPM
Jump to navigation
Jump to search
A differenza degli SQL Profile, non richiede licenza diagnostic e tuning. Utilizzabile sulla EE e dalla 18 anche sulla SE, sebbene con alcune limitazioni.
Forzare un piano
DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE ( sql_id IN VARCHAR2, plan_hash_value IN NUMBER := NULL, fixed IN VARCHAR2 := 'NO', enabled IN VARCHAR2 := 'YES') RETURN PLS_INTEGER;
Esempio:
exec dbms_spm.load_plans_for_cursor_cache(sql_id=>'b05n0m9gmkj06',plan_hash_value=>23432123,fixed=>'YES',enabled=>'YES');
SQL Baseline Plan
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; /