1- ابتدا باید sql_id کوئری مورد نظر را بیابید.
select sq.sql_id,sq.sql_text from v$sql sq where sq.sql_text like '%Your Query%';
یا
select sql_id from v$session where sid = x
2- در گام بعدی برای کوئری یک tuning task ایجاد می کنیم :
SET SERVEROUTPUT ON
declare
stmt_task VARCHAR2(40);
begin
tune_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id => ' 5fktw7d0p8mut');
DBMS_OUTPUT.put_line('task_id: ' || tune_task);
end;
/
task_id: TASK_1042
3- سپس برای task ایجاد شده در مرحله قبل SQL TUNING TASK را اجرا می کنیم :
begin
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'TASK_1042');
end;
/
4- میتوانید وضعیت tuning task را با دستور زیر مونیتور کنید :
SELECT TASK_NAME, STATUS FROM DBA_ADVISOR_LOG WHERE TASK_NAME = 'TASK_1042';
5- زمانی که در دستور بالا status=COMPLETED شد، می توانید خروجی SQL TUNING TASK برای کوئری مربوطه را مشاهده نمایید :
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('TASK_1042') AS recommendations FROM dual;
نکته : در صورتی که می خواهید یک SQL profile را Accept کنید، می توانید از دستور زیر استفاده کنید :
begin
DBMS_SQLTUNE.ACCEPT_SQL_PROFILE(task_name => 'TASK_1042, task_owner => 'SYSTEM', replace => TRUE);
end;
/
- ۹۶/۱۰/۲۷
- ۵۵۵ نمایش