Een AWR rapport maken is eenvoudig en geeft veel informatie terug over de database en de queries van dat moment.

sqlplus / as sysdba
@?/rdbms/admin/awrrpt

Vervolgens geeft je de snapshot id’s op waarover je een rapportage wil hebben.

Nu zien we een interessante cq. verdachte query en die willen we verder onderzoeken.
Dit kan door bijvoorbeeld DBA_HIST_SQLPLAN view te query-en, maar je kan het ook vragen aan de database middels DBMS_SQLTUNE.

sqlplus / as sysdba
SET SERVEROUTPUT ON

Maak een tuning task aan:
DECLARE
l_sql_tune_task_id VARCHAR2(100);
BEGIN
l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
begin_snap =>
<SNAPSHOT_ID_1> ,
end_snap =>
<SNAPSHOT_ID_2> ,
sql_id => ‘
<SQL_ID>‘,
scope => DBMS_SQLTUNE.scope_comprehensive,
time_limit => 60,
task_name => ‘my_sql_tuning_task’,
description => ‘My SQL Tuning task.’);
DBMS_OUTPUT.put_line(‘l_sql_tune_task_id: ‘ || l_sql_tune_task_id);
END;
/

Laat deze uitvoeren:
EXEC DBMS_SQLTUNE.EXECUTE_TUNING_TASK( task_name => ‘my_sql_tuning_task’ );

Controleer de status van de task:
SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = ‘my_sql_tuning_task’;

Toon het rapport gemaakt door de tuning task:
SET LONG 10000
SET LONGCHUNKSIZE 1000
SET LINESIZE 400
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( ‘my_sql_tuning_task’) FROM DUAL;

Verwijder de tuning task:
EXEC DBMS_SQLTUNE.DROP_TUNING_TASK( task_name => ‘my_sql_tuning_task’ );