Oracle SPM: differenze tra le versioni
Jump to navigation
Jump to search
(Creata pagina con "=SPM= Categoria:Oracle Categoria:Database") |
Nessun oggetto della modifica |
||
(4 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
=SPM= |
|||
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; |
|||
/ |
|||
[[Categoria:Oracle]] |
[[Categoria:Oracle]] |
Versione attuale delle 15:38, 10 nov 2022
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; /