执行计划之统计信息
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;
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;
相关文章推荐
- 如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
- 一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】
- 【转】如何知道执行计划使用了那些统计信息
- ORACLE 执行计划 统计信息介绍
- Oracle:执行计划:访问路径、表连接、提示、统计信息、绑定变量
- 修改统计信息改变执行计划(ORACLE)
- 利用DBMS_STATS包修改统计信息,欺骗优化器,生成糟糕的执行计划
- 通过锁定统计信息来锁定执行计划
- 收集统计信息中的no_invalidate选项对执行计划的影响
- oracle查看sql执行计划和统计信息
- 在Oracle的SQL*PLUS中启用AutoTrace查看SQL执行计划和统计信息
- 利用DBMS_STATS包修改统计信息,欺骗优化器,生成糟糕的执行计划
- ORACLE统计信息与执行计划
- 执行计划基础 统计信息
- oracle查看sql执行计划和统计信息
- 如何知道执行计划使用了那些统计信息
- 删除重复值【根据两个字段判断】(只保留一个)&查看执行计划&统计信息
- sqlplus得到执行计划的统计信息
- Oracle CBO 统计信息的收集与执行计划的选择