首批通过分布式安全可靠测评,为关键业务系统打造
RESTORE_TABLE_STATS
更新时间:2026-05-18 18:19:37
RESTORE_TABLE_STATS 过程用于恢复指定时刻的表级历史统计信息。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。
语法
DBMS_STATS.RESTORE_TABLE_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
as_of_timestamp TIMESTAMP WITH TIME ZONE,
force BOOLEAN DEFAULT FALSE,
no_invalidate BOOLEAN DEFAULT FALSE);
参数说明
| 参数 | 说明 |
|---|---|
| ownname | 用户名。如果用户名设置为 NULL,会默认使用当前登录用户名。 |
| tabname | 表名称。 |
| as_of_timestamp | 指定恢复时间。 |
| force | 强制恢复,并忽略加锁。默认是 FALSE。 |
| no_invalidate | 收集统计信息时是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。 |
异常情况
| 错误码 | 描述 |
|---|---|
| OBE-20000 | 该对象不存在或权限不足。 |
| OBE-20001 | 无效或不一致的值。 |
| OBE-20006 | 统计信息无法恢复,统计历史信息不可用。 |
使用说明
要调用此过程,您必须是表的所有者。对于 SYS 拥有的对象,需要是表的所有者或具有 SYSDBA 权限才能调用此过程。
示例
恢复用户 testUser01 下的 tbl1 表指定时刻下的统计信息。
obclient> CALL DBMS_STATS.RESTORE_TABLE_STATS ('testUser01', 'tbl1',TO_TIMESTAMP('2022-12-06 22:00:01.007146', 'YYYY-MM-DD HH24:MI:SS.FF'));
Query OK, 0 rows affected