39 lines
699 B
MySQL
39 lines
699 B
MySQL
|
|
set serveroutput ON
|
||
|
|
|
||
|
|
variable max_secs NUMBER
|
||
|
|
|
||
|
|
begin
|
||
|
|
:max_secs:=to_number(&2)*60;
|
||
|
|
end;
|
||
|
|
/
|
||
|
|
|
||
|
|
variable c_tt refcursor
|
||
|
|
|
||
|
|
DECLARE
|
||
|
|
r CLOB;
|
||
|
|
t varchar2(30) := 'SQLTT_&1';
|
||
|
|
BEGIN
|
||
|
|
BEGIN
|
||
|
|
dbms_sqltune.drop_tuning_task(t);
|
||
|
|
EXCEPTION
|
||
|
|
WHEN OTHERS THEN
|
||
|
|
NULL;
|
||
|
|
END;
|
||
|
|
|
||
|
|
r := dbms_sqltune.create_tuning_task(task_name => t, sql_id => '&1', time_limit => :max_secs);
|
||
|
|
dbms_sqltune.execute_tuning_task(t);
|
||
|
|
|
||
|
|
open :c_tt for select dbms_sqltune.report_tuning_task(t) recommendations from dual;
|
||
|
|
|
||
|
|
if :c_tt is NULL then
|
||
|
|
begin
|
||
|
|
open :c_tt for select 'N/A' recommendations from dual;
|
||
|
|
end;
|
||
|
|
end if;
|
||
|
|
|
||
|
|
END;
|
||
|
|
/
|
||
|
|
|
||
|
|
print :c_tt
|
||
|
|
|