首批通过分布式安全可靠测评,为关键业务系统打造
DELETE_TABLE_STATS
更新时间:2026-04-30 18:36:40
DELETE_TABLE_STATS 过程用于删除表级的统计信息。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。
DBMS_STATS.DELETE_TABLE_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
cascade_parts BOOLEAN DEFAULT TRUE,
cascade_columns BOOLEAN DEFAULT TRUE,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE);
参数解释
| 参数 | 解释 |
|---|---|
| ownname | 用户名。如果用户名设置为 NULL,会默认使用当前登录的用户名。 |
| tabname | 此列所属的表名。 |
| partname | 从中获取统计信息的表所在(子)分区的名称。如果表已分区而 partname 为 NULL,则从全局表级别检索统计信息。 |
| cascade_parts | 是否同时删除分区级、子分区级的统计信息,默认为 TRUE。 |
| cascade_columns | 是否同时删除列级的统计信息,默认为 TRUE。 |
| no_invalidate | 收集统计信息时是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。 |
| force | 是否强制收集,并忽略锁的状态。默认为 FALSE。 如果设置为 TRUE,即使统计信息被锁定,也会收集统计信息。 |
异常情况
| 错误码 | 描述 |
|---|---|
| OBE-20000 | 该对象不存在或权限不足。 |
| OBE-20002 | 用户统计表已损坏,可能需要升级。 |
| OBE-20005 | 该对象的统计信息被锁定。 |
使用说明
要调用此过程,您必须是表的所有者。对于由 SYS 拥有的对象,需要是表的所有者或具有 SYSDBA 权限才能调用此过程。
示例
删除用户 testUser01 的表 tbl1 的所有统计信息。
obclient> CALL DBMS_STATS.DELETE_TABLE_STATS('testUser01', 'tbl1');
Query OK, 0 rows affected