---
title: "自动收集统计信息 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 自动收集统计信息 目前 OceanBase 数据库优化器通过基于 DBMS_SCHEDULER 系统包实现的 MAINTENANCE WINDOW 来实现每日的自动统计信息收集，从而保证统计信息的不断迭代更新。 MAINTENANCE WINDOW OceanBase 数据库定义 MAINTENANCE WINDOW…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.6.0

# 自动收集统计信息

更新时间：2026-06-15 10:35:31

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/1000.performance-tuning-guide/500.sql-optimization/400.sql-optimization/400.optimizer-statistics/200.statistics-collection-methods/400.collect-statistics-automatically.md)  

目前 OceanBase 数据库优化器通过基于 `DBMS_SCHEDULER` 系统包实现的 `MAINTENANCE WINDOW` 来实现每日的自动统计信息收集，从而保证统计信息的不断迭代更新。

## MAINTENANCE WINDOW

OceanBase 数据库定义 `MAINTENANCE WINDOW` 为周一到周日有 7 个自动统计信息收集任务，周一到周日的任务开始时间为 22:00，最大收集时长为 4 小时，如下表所示。

| **维护窗口名称** | **开始时间/频率** | **最大收集时长** |
| --- | --- | --- |
| MONDAY_WINDOW | 22:00/per week | 4 hours |
| TUESDAY_WINDOW | 22:00/per week | 4 hours |
| WEDNESDAY_WINDOW | 22:00/per week | 4 hours |
| THURSDAY_WINDOW | 22:00/per week | 4 hours |
| FRIDAY_WINDOW | 22:00/per week | 4 hours |
| SATURDAY_WINDOW | 22:00/per week | 4 hours |
| SUNDAY_WINDOW | 22:00/per week | 4 hours |

### 查询 MAINTENANCE WINDOW 信息

目前 OceanBase 数据库中 `MAINTENANCE WINDOW` 是基于 `DBMS_SCHEDULER` 系统包实现的，因此也可以通过查询 `DBMS_SCHEDULER` 系统包相关视图来查询 `MAINTENANCE WINDOW` 的相关信息。

| 模式 | View Name | Description |
| --- | --- | --- |
| Oracle 模式 | DBA_SCHEDULER_JOBS | 查询 Job 信息 |
| Oracle 模式 | sys.ALL_VIRTUAL_TENANT_SCHEDULER_JOB_REAL_AGENT | 查询 Job 信息的代理表 |
| MySQL 模式 | oceanbase.DBA_SCHEDULER_JOBS | 查询 Job 信息 |

### 设置 MAINTENANCE WINDOW 属性

目前 OceanBase 数据库中 `MAINTENANCE WINDOW` 的属性设置也是通过 `DBMS_SCHEDULER` 系统包实现的，当前支持的属性设置语法如下：

- 禁止/启用自动统计信息任务收集：

  ```sql
  DBMS_SCHEDULER.DISABLE($window_name);

  DBMS_SCHEDULER.ENABLE($window_name);

  ```

     - 示例 1：禁用周一自动收集统计信息

      ```sql
      CALL  DBMS_SCHEDULER.DISABLE('MONDAY_WINDOW');

      ```
     - 示例 2：启用周一自动收集统计信息

      ```sql
      CALL DBMS_SCHEDULER.ENABLE('MONDAY_WINDOW');

      ```
 - 设置统计信息任务下次开始的时间：

  ```sql
  DBMS_SCHEDULER.SET_ATTRIBUTE($window_name, 'NEXT_DATE', $next_time);

  ```

  示例：设置周一自动收集统计信息开始的时间在晚上 8 点。

  ```sql
  CALL DBMS_SCHEDULER.SET_ATTRIBUTE('MONDAY_WINDOW', 'NEXT_DATE', '2022-09-12 20:00:00');

  ```

## DML STATS

DML STATS 用于记录一张表做增、删、改的次数。

表的 DML STATS 对于自动统计信息收集有着至关重要的作用，它决定了一张表是否需要再次收集统计信息。数据库中的表的数据信息并不是每天都会更新，因此对于不存在数据变化或者数据变化在预期范围内的表，不需要再次收集统计信息，这样可以提升自动统计信息收集任务的执行效率。

下表列举了 Oracle 和 MySQL 两种模式下支持查询 DML STATS 信息的相关视图和表信息。

| 模式 | 视图名称 | 描述 |
| --- | --- | --- |
| Oracle 模式 | GV$DML_STATS、V$DML_STATS | 查询虚表中记录的表的 DML STATS |
| Oracle 模式 | sys.ALL_VIRTUAL_MONITOR_MODIFIED_REAL_AGENT | 查询代理表中记录表的 DML STATS |
| Oracle 模式 | ALL_TAB_MODIFICATIONS、DBA_TAB_MODIFICATIONS、USER_TAB_MODIFICATIONS | 查询表中所有的 DML STATS |
| MySQL 模式 | oceanbase.GV$DML_STATS、oceanbase.V$DML_STATS | 查询虚表中记录的表的DML STATS |
| MySQL 模式 | oceanbase.DBA_TAB_MODIFICATIONS | 查询表中所有的 DML STATS |

## 自动统计信息收集策略

OceanBase 数据库中表的统计信息过期判断标准为：自上一次收集统计信息以来，表中发生增、删、改操作的累计影响行数超过设定的阈值时，统计信息即判定为过期。该阈值的默认值为表总行数的 10%，可通过 Prefs 进行调整，详细信息请参见 [收集策略配置项（Prefs）管理功能](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687668)。

目前 OceanBase 数据库优化器的自动统计信息收集策略如下：

- 系统表和非分区用户表的自动收集策略：

     - 如果表没有 `GLOBAL` 级别的统计信息，自动收集统计信息。
     - 如果表有 `GLOBAL` 级别的统计信息，但是统计信息已经过期，则自动收集统计信息。

  否则，OceanBase 数据库优化器不会自动收集统计信息。
 - OceanBase 数据库分区用户表的自动收集策略：

     - 如果表没有任何统计信息，自动收集所有的统计信息。
     - 如果表有分区级别的统计信息，但是没有 `GLOBAL` 级别统计信息，则采用增量的方式自动收集统计信息。
     - 如果表有 `GLOBAL` 级别统计信息，但是已经过期，则自动收集所有的统计信息。
     - 如果表有 `GLOBAL` 级别统计信息，但是没有全部过期，只是部分分区的统计信息过期，则自动收集统计信息过期的分区统计信息，同时采用增量的方式推导 `GLOBAL` 级别统计信息。

更多关于分区表统计信息的收集与更新策略，以及详细示例 参见[分区表统计信息的收集与更新策略](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686956)。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
