-- 1. オプティマイザ統計アドバイザ・タスクの作成
sqlplus test/test@pdb11
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
DECLARE
v_tname VARCHAR2(32767);
v_ret VARCHAR2(32767);
BEGIN
v_tname := 'opt_adv_task1';
v_ret := DBMS_STATS.CREATE_ADVISOR_TASK(v_tname);
END;
/
SELECT TASK_NAME, ADVISOR_NAME, CREATED, STATUS FROM USER_ADVISOR_TASKS;
-- 2. オプティマイザ統計アドバイザ・タスクのリスト
COL EXECUTION_NAME FORMAT a14
SELECT EXECUTION_NAME, EXECUTION_END, STATUS
FROM DBA_ADVISOR_EXECUTIONS
WHERE TASK_NAME = 'AUTO_STATS_ADVISOR_TASK'
ORDER BY 2;
-- 3. オプティマイザ統計アドバイザ・タスクの実行
DECLARE
v_tname VARCHAR2(32767);
v_ret VARCHAR2(32767);
BEGIN
v_tname := 'opt_adv_task1';
v_ret := DBMS_STATS.EXECUTE_ADVISOR_TASK(v_tname);
END;
/
SELECT TASK_NAME, EXECUTION_NAME,
EXECUTION_END, EXECUTION_TYPE AS TYPE, STATUS
FROM USER_ADVISOR_EXECUTIONS;
-- 4. オプティマイザ統計アドバイザ・タスクのレポートの生成
SET LINESIZE 3000
SET LONG 500000
SET PAGESIZE 0
SET LONGCHUNKSIZE 100000
SELECT DBMS_STATS.REPORT_ADVISOR_TASK('AUTO_STATS_ADVISOR_TASK', NULL,
'TEXT', 'ALL', 'ALL') AS REPORT
FROM DUAL;