2026-03-12 21:01:38
This commit is contained in:
152
ASPM/aspm_01.md
Normal file
152
ASPM/aspm_01.md
Normal file
@@ -0,0 +1,152 @@
|
||||
set lines 256
|
||||
|
||||
column client_name format a35
|
||||
column task_name format a30
|
||||
|
||||
column last_try_date format a20
|
||||
column last_good_date format a20
|
||||
column next_try_date format a20
|
||||
|
||||
alter session set nls_timestamp_format = 'yyyy-mm-dd hh24:mi:ss';
|
||||
|
||||
select
|
||||
client_name, task_name, status,
|
||||
to_char(last_try_date,'yyyy-mm-dd hh24:mi:ss') as last_try_date,
|
||||
to_char(last_good_date,'yyyy-mm-dd hh24:mi:ss') as last_good_date,
|
||||
to_char(next_try_date,'yyyy-mm-dd hh24:mi:ss') as next_try_date
|
||||
from dba_autotask_task;
|
||||
|
||||
|
||||
|
||||
SQL> show parameter optimizer%baselines
|
||||
|
||||
NAME TYPE VALUE
|
||||
------------------------------------ ----------- ------------------------------
|
||||
optimizer_capture_sql_plan_baselines boolean FALSE
|
||||
optimizer_use_sql_plan_baselines boolean TRUE
|
||||
|
||||
|
||||
|
||||
|
||||
set lines 200
|
||||
set pages 1000
|
||||
col parameter_name for a35
|
||||
col parameter_value for a30
|
||||
col last_modified for a30
|
||||
col modified_by for a30
|
||||
|
||||
select * from dba_sql_management_config where parameter_name like 'AUTO_SPM_EVOLVE_TASK%';
|
||||
|
||||
|
||||
|
||||
exec dbms_spm.configure('AUTO_SPM_EVOLVE_TASK','ON');
|
||||
exec dbms_spm.configure('AUTO_SPM_EVOLVE_TASK','OFF');
|
||||
|
||||
The list of tunable parameters with DBMS_SPM.CONFIGURE:
|
||||
|
||||
col description FOR a40 word_wrapped
|
||||
SET pages 1000
|
||||
|
||||
select parameter_name, parameter_value, description
|
||||
from dba_advisor_parameters
|
||||
where task_name = 'SYS_AUTO_SPM_EVOLVE_TASK'
|
||||
and parameter_value != 'UNUSED';
|
||||
|
||||
|
||||
|
||||
set lines 256
|
||||
|
||||
col DBID noprint
|
||||
col TASK_ID noprint
|
||||
col TASK_NAME noprint
|
||||
|
||||
select *
|
||||
from dba_autotask_schedule_control
|
||||
where dbid = sys_context('userenv','con_dbid')
|
||||
and task_name = 'Auto SPM Task';
|
||||
|
||||
-- last task details
|
||||
SET LONG 1000000 PAGESIZE 1000 LONGCHUNKSIZE 256 LINESIZE 256
|
||||
|
||||
SELECT DBMS_SPM.report_auto_evolve_task
|
||||
FROM dual;
|
||||
|
||||
|
||||
CREATE TABLE test1(id NUMBER, descr VARCHAR(50)) TABLESPACE users;
|
||||
|
||||
DECLARE
|
||||
i NUMBER;
|
||||
nbrows NUMBER;
|
||||
BEGIN
|
||||
i:=1;
|
||||
nbrows:=50000;
|
||||
LOOP
|
||||
EXIT WHEN i>nbrows;
|
||||
IF (i=1) THEN
|
||||
INSERT INTO test1 VALUES(1,RPAD('A',49,'A'));
|
||||
ELSE
|
||||
INSERT INTO test1 VALUES(nbrows,RPAD('A',49,'A'));
|
||||
END IF;
|
||||
i:=i+1;
|
||||
END LOOP;
|
||||
COMMIT;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE INDEX test1_idx_id ON test1(id) TABLESPACE users;
|
||||
|
||||
|
||||
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>user, tabname=>'test1', estimate_percent=>NULL, method_opt=>'FOR ALL INDEXED COLUMNS SIZE 2');
|
||||
|
||||
|
||||
ALTER SYSTEM flush shared_pool;
|
||||
|
||||
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM test1 WHERE id=1;
|
||||
|
||||
SELECT sql_id,child_number,plan_hash_value,is_bind_sensitive,is_bind_aware,is_shareable,is_obsolete,sql_plan_baseline
|
||||
FROM v$sql
|
||||
WHERE sql_id='4q7zcj8kp9q2r';
|
||||
|
||||
|
||||
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname=>user, tabname=>'test1', estimate_percent=>NULL, method_opt=>'FOR ALL INDEXED COLUMNS SIZE 1');
|
||||
|
||||
|
||||
SELECT
|
||||
plan_hash_value,
|
||||
cpu_time,
|
||||
buffer_gets,
|
||||
disk_reads,
|
||||
direct_writes,
|
||||
rows_processed,
|
||||
fetches,
|
||||
executions,
|
||||
optimizer_cost,
|
||||
TO_CHAR(plan_timestamp,'dd-mon-yyyy hh24:mi:ss') AS plan_timestamp
|
||||
FROM dba_sqlset_statements
|
||||
WHERE sqlset_name='SYS_AUTO_STS'
|
||||
AND sql_id='4q7zcj8kp9q2r'
|
||||
ORDER BY plan_timestamp DESC;
|
||||
|
||||
|
||||
select * from SYS.WRI$_ADV_EXECUTIONS where exec_type='SPM EVOLVE' order by exec_start desc;
|
||||
|
||||
select * from SYS.WRI$_ADV_EXECUTIONS where exec_type='SPM EVOLVE'
|
||||
where exec_start between date'2025-05-25 09:00:00' and date'2025-05-25 19:00:00'
|
||||
order by exec_start desc;
|
||||
|
||||
|
||||
|
||||
select
|
||||
sql_id
|
||||
,plan_hash_value
|
||||
,LAST_MODIFIED
|
||||
from(
|
||||
select
|
||||
dbms_sql_translator.sql_id(sql_text) sql_id,
|
||||
(select to_number(regexp_replace(plan_table_output,'^[^0-9]*'))
|
||||
from table(dbms_xplan.display_sql_plan_baseline(sql_handle,plan_name))
|
||||
where plan_table_output like 'Plan hash value: %') plan_hash_value,
|
||||
bl.*
|
||||
from dba_sql_plan_baselines bl
|
||||
)
|
||||
;
|
||||
Reference in New Issue
Block a user