重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: DBA_AUTOTASK_TASK和DBA_AUTOTASK_CLIENT的区别 [打印本页]

作者: ZhangQi    时间: 2026-5-15 17:08
标题: DBA_AUTOTASK_TASK和DBA_AUTOTASK_CLIENT的区别
在查看 Oracle 自动维护任务时,发现:

SELECT client_name,status FROM dba_autotask_task;
CLIENT_NAME                         STATUS
----------------------------------- --------
auto optimizer stats collection     ENABLED
auto space advisor                  ENABLED    ← 这里显示 ENABLED
sql tuning advisor                  ENABLED    ← 这里也显示 ENABLED

SELECT client_name,status FROM dba_autotask_client;
CLIENT_NAME                         STATUS
----------------------------------- --------
auto optimizer stats collection     ENABLED
auto space advisor                  DISABLED   ← 这里却是 DISABLED
sql tuning advisor                  DISABLED   ← 这里也是 DISABLED

问题来了:同一个任务,为什么两个视图显示的状态不一样?到底哪个说了算?

一、核心区别:一个是"功能",一个是"开关"

DBA_AUTOTASK_TASK - 功能定义表(系统级)

- 这是 Oracle 预定义的 3 种自动维护任务类型
- 始终存在,无法删除
- 代表:Oracle 提供了这个能力
- 类比:手机里的 "相机应用"(硬件支持)

DBA_AUTOTASK_CLIENT - 客户端配置表(实例级)

- 控制这些任务在当前数据库中是否实际运行
- 可以动态启用/禁用
- 代表:这个功能开没开
- 类比:相机应用的 "权限开关"(允不允许用)

二、看懂关系

903296a03e29b2e1fb.png
登录/注册后可看大图