Oracle sql tuning advisor

Da Emigar.
Jump to navigation Jump to search

SQL Baseline Plan

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

--
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;
/


Script

@?/rdbms/admin/sqltrpt.sql

per sql_id

Se si dispone dell'sql_id della query:

DECLARE
my_task_name VARCHAR2(30);
BEGIN
 my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(
 sql_id => '&1',
 scope => 'COMPREHENSIVE',
 time_limit => 3600,
 task_name => '&2-&1',
 description => 'processo &2 &1');
end;
/
BEGIN
 DBMS_SQLTUNE.EXECUTE_TUNING_TASK( task_name => '&2-&1');
end;
/
set long 10000000
set longchunksize 1000
set linesize 200
set pagesize 400
set trim on
set trims on
set autotrace off
spool &2-&1..txt
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( '&2-&1') from DUAL;
spool off
spool &2-&1..long.txt
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( '&2-&1','TEXT','ALL','ALL') from DUAL;
spool off