Thursday, June 27, 2013

Creating Tuning Task with SQL_ID

No Access to OEM, hence SQL Tuning Advisor In command line:

Grab sql_id from v$sql...
Then:

SET SERVEROUTPUT ON
declare
stmt_task VARCHAR2(100);
begin
stmt_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id => '49kur02wcrkkk', time_limit => 60);
DBMS_OUTPUT.put_line('task_id: ' || stmt_task );
end;
/

task_id: TASK_828086

EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'TASK_828086');

while using DBMS_SQLTUNE.EXECUTE_TUNING_TASK ... can check status in DBA_ADVISOR_LOG view,

SELECT * FROM DBA_ADVISOR_LOG where task_name = 'TASK_828086'; --'TASK_828076';

SELECT task_name, status FROM DBA_ADVISOR_LOG;

when status=COMPLETED ... and then got recommendations!!!

SET LINESIZE 200
SELECT DBMS_SQLTUNE. REPORT_TUNING_TASK('TASK_828072') AS recommendations FROM dual;

Findings reports example:

GENERAL INFORMATION SECTION
-------------------------------------------------------------------------------
Tuning Task Name   : TASK_828086
Tuning Task Owner  : XXX_SYS
Workload Type      : Single SQL Statement
Scope              : COMPREHENSIVE
Time Limit(seconds): 60
Completion Status  : COMPLETED
Started at         : 06/27/2013 15:06:35
Completed at       : 06/27/2013 15:08:41

-------------------------------------------------------------------------------
Error: ORA-13639: The current operation was interrupted because it timed out.
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Schema Name: NOETIX_SYS
SQL ID     : 49kur02wcrkkk
SQL Text   : SELECT GLX0_ALL_BALANCES.PERIOD_NAME,

                      GLX0_ALL_BALANCES.SET_OF_BOOKS_ID,

No comments: