跳到主要内容

DELETE_COLUMN_STATS

DELETE_COLUMN_STATS 过程用于删除列级的统计信息。

语法

DBMS_STATS.DELETE_COLUMN_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
colname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
cascade_parts BOOLEAN DEFAULT TRUE,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE,
col_stat_type VARCHAR2 DEFAULT 'ALL');

参数解释

参数解释
ownname用户名。如果用户名设置为 NULL,会默认使用当前登录的用户名。
tabname此列所属的表的名称。
colname列名或扩展名。
partname存储统计信息的表所在分区的名称。如果表已分区而 partnameNULL,则统计信息存储在全局表的级别。
cascade_parts是否同时删除分区级、子分区级的统计信息,默认为 TRUE
no_invalidate收集统计信息时是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。
force是否强制收集,并忽略锁的状态。默认为 FALSE。如果设置为 TRUE,即使统计信息被锁定,也会收集统计信息。
col_stat_type删除列级统计信息时的类型。该参数取值如下:
  • 'ALL':删除所有的列级统计信息。
  • 'HISTOGRAM':只删除列级的直方图信息。

异常情况

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

使用说明

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

示例

删除用户 testUser01 的表 tbl1col1 列的所有统计信息。

CALL DBMS_STATS.DELETE_COLUMN_STATS('testUser01', 'tbl1', 'col1',col_stat_type=>'ALL');
Query OK, 0 rows affected