首页 > 数据库 > Oracle > 如何对Oracle统计信息进行收集和维护
11g 及以上 :
查看自动收集任务及状态:(11g及以上)
|
1 |
select
client_name,status
from
Dba_Autotask_Client
where
client_name=
'auto optimizer stats collection'
; |
查看自动收集任务执行时间窗口: (11g及以上)
|
1
2
3 |
select
WINDOW_NAME, WINDOW_NEXT_TIME, WINDOW_ACTIVE, OPTIMIZER_STATS
from
DBA_AUTOTASK_WINDOW_CLIENTS
order
by
WINDOW_NEXT_TIME; |
关闭自动收集任务:
|
1
2
3
4
5
6 |
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name =>
'auto optimizer stats collection'
,
operation =>
NULL
, window_name =>
NULL
);
END
;
/ |
开启自动收集任务:
|
1
2
3
4
5
6 |
BEGIN
DBMS_AUTO_TASK_ADMIN.ENABLE(
client_name =>
'auto optimizer stats collection'
,
operation =>
NULL
, window_name =>
NULL
);
END
;
/ |
10g:
查看自动收集任务及状态:
|
1
2
3 |
select
job_name,schedule_name,enabled,last_start_date,last_run_duration,next_run_datefrom
dba_scheduler_jobs awhere
job_name =
'GATHER_STATS_JOB'
; |
开启 / 关闭自动收集任务:
方法一:
|
1
2 |
exec
dbms_scheduler.disable(
'SYS.GATHER_STATS_JOB'
);exec
dbms_scheduler.enable(
'SYS.GATHER_STATS_JOB'
); |
方法二:
|
1
2 |
alter
system
set
"_optimizer_autostats_job"
=
false
scope=spfile;alter
system
set
"_optimizer_autostats_job"
=
true
scope=spfile; |
获得当前自动收集统计信息的执行时间
|
1
2
3
4 |
col WINDOW_NAME format a20col DURATION format a20col REPEAT_INTERVAL format a75select
t2.window_group_name,t1.window_name,t1.repeat_interval,t1.duration
from
dba_scheduler_windows t1,dba_scheduler_wingroup_members t2
where
t1.window_name=t2.window_name; |
修改统计信息执行的时间
-- 修改 WEEKEND_WINDOW 的配置 ( 改成和 WEEKNIGHT_WINDOW 相同 , 即周一 ~ 周五 , 每日的 22:00 向后 8 小时 , 至次日凌晨 6 点 )
|
1
2
3
4
5 |
begindbms_scheduler.set_attribute(
'WEEKEND_WINDOW'
,
'REPEAT_INTERVAL'
,
'freq=daily;byday=SAT,SUN;byhour=22;byminute=0;bysecond=0'
);dbms_scheduler.set_attribute(
'WEEKEND_WINDOW'
,
'DURATION'
,
'+000 08:00:00'
);end
;/ |
-- 周末两天都是全天 :
|
1
2
3
4
5 |
begindbms_scheduler.set_attribute(
'WEEKEND_WINDOW'
,
'REPEAT_INTERVAL'
,
'freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0'
);dbms_scheduler.set_attribute(
'WEEKEND_WINDOW'
,
'DURATION'
,
'+002 00:00:00'
);end
;/ |
查看统计信息执行的历史记录
--JOB 运行历史记录
|
1
2 |
select
*
from
dba_scheduler_job_logwhere
job_name =
'GATHER_STATS_JOB'
; |
--
正在运行的
job
|
1 |
select
*
from
dba_scheduler_running_jobs;
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3086643/ ,如需转载,请注明出处,否则将追究法律责任。