自动维护任务是一种按规则自动启动的数据库维护操作任务。比如自动收集为查询优化器使用的统计信息。自动维护任务按维护窗口自动运
行。所谓自动维护窗口是按照预定义的间隔时间窗口。
oracle11g数据库有三种预定义的自动维护任务:
■ Automatic OptimizerStatistics Collection:
■ Automatic SegmentAdvisor
■ Automatic SQLTuning Advisor(这个是oracle 11g新添加的自动维护任务)
缺省情况下,这三个任务配置为在所有维护窗口运行。
维护窗口:维护窗口是一个连续的时间间隔,用于管理自动维护任务所用。维护窗口是oracle调度窗口,属于窗口组MAINTENANCE_WINDOW_GROUP。
Oracle 11g 数据库有三个预定义自动维护任务:
Automatic Optimizer Statistics Collection(自动优化器统计信息收集)
收集数据库中所有无统计信息或仅有过时统计信息的 Schema 对象的 Optimizer(优化器)统计信息。SQL query optimizer(SQL 查询优化器)使用此任务收集的统计信息提高 SQL 执行的性能。
Automatic Segment Advisor(自动段指导)
识别有可用回收空间的段,并提出如何消除这些段中的碎片的建议。您也可以手动运行 Segment Advisor 获取更多最新建议,或获取 Automatic SegmentAdvisor 没有检查到的那些有可能做空间回收的段的建议。
Automatic SQL Tuning Advisor(自动 SQL 优化指导)
检查高负载 SQL 语句的性能,并提出如何优化这些语句的建议。您可以配置此指导,自动应用建议的SQL profile。
一:配置自动维护任务:
1:启用和禁止维护任务:
使用DBMS_AUTO_TASK_ADMIN pl/sql包来启用或禁用任务:
禁用任务:
BEGIN
dbms_auto_task_admin.disable(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL);
END;
启用任务:
BEGIN
dbms_auto_task_admin.enable(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL);
END;
这里client_name参数可以通过数据字典视图DBA_AUTOTASK_CLIENT来查询。
SQL> desc DBA_AUTOTASK_CLIENT
名称 是否为空?类型
------------------------------------------------- ----------------------------
CLIENT_NAME VARCHAR2(64)
STATUS VARCHAR2(8)
CONSUMER_GROUP VARCHAR2(30)
CLIENT_TAG VARCHAR2(2)
PRIORITY_OVERRIDE VARCHAR2(7)
ATTRIBUTES VARCHAR2(4000)
WINDOW_GROUP VARCHAR2(64)
SERVICE_NAME VARCHAR2(64)
RESOURCE_PERCENTAGE &nbs