您的位置:首页 > 其它

执行计划之统计信息

2014-06-19 17:41 295 查看
/*

1. 11g默认启动了统计信息收集的任务,默认运行时间是周一到周五晚上10点和周6,周天的早上6点

2. 你也可以关闭自动统计新收集任务,选择手工收集的方式,但是一般不建议这样操作。

*/

select window_name,

window_next_time,

autotask_status,

optimizer_stats

from DBA_AUTOTASK_WINDOW_CLIENTS;

WINDOW_NAME WINDOW_NEXT_TIME AUTOTASK OPTIMIZE

------------------- ------------------------------------------------ -------- -----

MONDAY_WINDOW 13-1月 -14 10.00.00.000000 下午 +08:00 ENABLED ENABLED

TUESDAY_WINDOW 14-1月 -14 10.00.00.000000 下午 +08:00 ENABLED ENABLED

WEDNESDAY_WINDOW 15-1月 -14 10.00.00.000000 下午 +08:00 ENABLED ENABLED

THURSDAY_WINDOW 16-1月 -14 10.00.00.000000 下午 +08:00 ENABLED ENABLED

FRIDAY_WINDOW 17-1月 -14 10.00.00.000000 下午 +08:00 ENABLED ENABLED

SATURDAY_WINDOW 11-1月 -14 06.00.00.000000 上午 +08:00 ENABLED ENABLED

SUNDAY_WINDOW 12-1月 -14 06.00.00.000000 上午 +08:00 ENABLED ENABLED

select client_name,status from dba_autotask_client

where client_name='auto optimizer stats collection';

CLIENT_NAME STATUS

--------------------------------------------

auto optimizer stats collection ENABLED

/*

禁用这个任务的sql如下:(其实默认是有auto space advisor段指导、sql tuning advisor自动SQL优化和收集统计信息3个任务。

不过那2个基本没啥用,可以禁掉!):

*/

BEGIN

dbms_auto_task_admin.disable(client_name=>'auto optimizer stats collection',operation=>NULL,window_name=>NULL);

END;

--启用

begin

dbms_auto_task_admin.enable;

dbms_auto_task_admin.enable('auto optimizer stats collection', null,null);

end;

begin

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'WEDNESDAY_WINDOW');

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'FRIDAY_WINDOW');

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'SATURDAY_WINDOW');

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'THURSDAY_WINDOW');

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'TUESDAY_WINDOW');

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'SUNDAY_WINDOW');

dbms_auto_task_admin.enable('auto optimizer stats collection', null,'MONDAY_WINDOW');

end;

--配置维护窗口:

--可是使用DBMS_SCHEDULER 包来修改窗口属性。

--1:修改维护窗口

--先禁用维护窗口

BEGIN

dbms_scheduler.disable(

name => 'SATURDAY_WINDOW');

--修改维护窗口属性:

dbms_scheduler.set_attribute(

name => 'SATURDAY_WINDOW',

attribute => 'DURATION',

value => numtodsinterval(4, 'hour'));

--启用维护窗口

dbms_scheduler.enable(

name => 'SATURDAY_WINDOW');

END;

/

--对于当前打开的窗口,你需要首先禁用,然后修改再启用,配置立即生效,如果你不通过这三个过程来修改属性,属性是不会生效的,直到下一次窗口打开。

--2:创建新窗口:

BEGIN

dbms_scheduler.create_window(

window_name => 'EARLY_MORNING_WINDOW',

duration => numtodsinterval(1, 'hour'),

resource_plan => 'DEFAULT_MAINTENANCE_PLAN',

repeat_interval => 'FREQ=DAILY;BYHOUR=5;BYMINUTE=0;BYSECOND=0');

dbms_scheduler.add_window_group_member(

group_name => 'MAINTENANCE_WINDOW_GROUP',

window_list => 'EARLY_MORNING_WINDOW');

END;

/

--3:删除窗口:

BEGIN

DBMS_SCHEDULER.REMOVE_WINDOW_GROUP_MEMBER(

group_name => 'MAINTENANCE_WINDOW_GROUP',

window_list => 'EARLY_MORNING_WINDOW');

END;

/

--跟踪job运行情况:

--可以通过查询视图DBA_AUTOTASK_HISTORY追踪job运行情况:

select client_name,job_name,job_start_time

from dba_autotask_job_history where client_name='auto optimizer stats collection'

order by job_start_time desc;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: