OceanBase 数据库调用 DBMS_STATS 包相关的存储过程 PROCEDURE 去删除保存在内部表中收集的统计信息。
目前支持如下三种删除统计信息的方式:
使用存储过程
delete_table_stats删除表级的统计信息。使用存储过程
delete_column_stats删除列级的统计信息。使用存储过程
delete_schema_stats删除 Schema 下所有表的统计信息。使用存储过程
delete_index_stats删除索引统计信息.
具体的存储过程定义如下:
PROCEDURE delete_table_stats (
ownname VARCHAR2,
tabname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
stattab VARCHAR2 DEFAULT NULL,
statid VARCHAR2 DEFAULT NULL,
cascade_parts BOOLEAN DEFAULT TRUE,
cascade_columns BOOLEAN DEFAULT TRUE,
cascade_indexes BOOLEAN DEFAULT TRUE,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE
);
PROCEDURE delete_column_stats (
ownname VARCHAR2,
tabname VARCHAR2,
colname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
stattab VARCHAR2 DEFAULT NULL,
statid VARCHAR2 DEFAULT NULL,
cascade_parts BOOLEAN DEFAULT TRUE,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE,
col_stat_type VARCHAR2 DEFAULT 'ALL'
);
PROCEDURE delete_schema_stats (
ownname VARCHAR2,
stattab VARCHAR2 DEFAULT NULL,
statid VARCHAR2 DEFAULT NULL,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE
);
PROCEDURE delete_index_stats(
ownname VARCHAR2,
indname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
stattab VARCHAR2 DEFAULT NULL,
statid VARCHAR2 DEFAULT NULL,
cascade_parts BOOLEAN DEFAULT TRUE,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
stattype VARCHAR2 DEFAULT 'ALL',
force BOOLEAN DEFAULT FALSE,
tabname VARCHAR2 DEFAULT NULL
);
参数解释如下表所示。
| 参数 | 解释 |
|---|---|
| ownname | 用户名。如果用户名设置为 NULL,会默认使用当前登录的用户名。 |
| tabname | 表名。 |
| indname | 索引名。 |
| partname | 分区名。 |
| colname | 列名。 |
| stattab | 该参数暂未实现,不可用。 |
| statid | 该参数暂未实现,不可用。 |
| cascade_parts | 是否同时删除分区级、子分区级的统计信息,默认为 TRUE。 |
| cascade_columns | 是否同时列级的统计信息,默认为 TRUE。 |
| cascade_indexes | 该参数暂未实现,不可用。 |
| statown | 该参数暂未实现,不可用。 |
| no_invalidate | 该参数暂未实现,不可用。 |
| force | 是否强制删除,并忽略锁的状态。默认为 FALSE。 |
| col_stat_type | 删除列级统计信息时的类型。
|
统计信息的删除功能示例如下:
删除用户
user1的表tbl1的所有统计信息。CALL dbms_stats.delete_table_stats('user1', 'tbl1');删除用户
user1的表tbl1的col1列的所有统计信息。CALL dbms_stats.delete_column_stats('user1', 'tbl1', 'col1');删除用户
user1下的所有表的统计信息。CALL dbms_stats.delete_schema_stats('user1');删除用户
user1的表tbl1的idx1索引的所有统计信息。CALL DBMS_STATS.DELETE_INDEX_STATS('user1', 'tbl1', 'idx1');
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




