跳到主要内容

DELETE_INDEX_STATS

DELETE_INDEX_STATS 过程用于删除与索引相关的统计信息。

语法

DBMS_STATS.DELETE_INDEX_STATS (
ownname VARCHAR2,
indname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
cascade_parts BOOLEAN DEFAULT TRUE,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE,
tabname VARCHAR2 DEFAULT NULL);

参数说明

参数解释
ownname用户名,如果用户名设置为 NULL,会默认使用当前登录用户名。
indname索引名称。
partname分区名称。
cascade_parts如果索引已分区并且 partnameNULL,则将此参数设置为 TRUE 会删除所有底层分区中该索引的统计信息。默认为 TRUE
no_invalidate收集统计信息时是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。
force是否强制删除,并忽略锁的状态。默认为 FALSE。如果设置为 TRUE,即使索引统计信息被锁定,也会删除索引统计信息。
tabname表名称。

异常情况

错误码描述
HY000
  • 该表不存在或权限不足。
  • 该对象的统计信息被锁定。

使用说明

要调用此过程,需要是表的所有者。

示例

删除用户 testUser01 的表 tbl1idx1 索引的所有统计信息。

CALL DBMS_STATS.DELETE_INDEX_STATS('testUser01', 'idx1', tabname=>'tbl1');
Query OK, 0 rows affected
信息

seekdb 需要显式指定表名,因为索引在当前用户下是非唯一的。