DELETE_TABLE_STATS¶
删除表对象的统计信息
声明¶
DBMS_STATS.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);
结构¶
| 参数 | 说明 |
|---|---|
| ownname | 目标Schema名称。 |
| tabname | 要被统计的列的表名。 |
| partname | 获取统计信息的表的分区或子分区名称(暂未启用)。 |
| stattab | 统计表名,将统计信息写入统计表中(暂未启用)。 |
| statid | 在stattab中统计记录id(暂未启用)。 |
| cascade_parts | 此参数标记此存储过程是否在在分区partname上生效(暂未启用)。 |
| cascade_columns | 此参数标记是否调用DELETE_COLUMN_STATS存储过程(暂未启用)。 |
| cascade_indexes | 此参数标记是否调用DELETE_INDEX_STATS存储过程(暂未启用)。 |
| statown | 统计表所在Schema,默认为ownname所在schema(暂未启用)。 |
| no_invalidate | 收集统计信息相关游标是否有效。默认值为False(暂未启用)。 |
| force | 是否强制删除上锁的统计记录(暂未启用)。 |
示例¶
DROP TABLE user1.tab1 CASCADE;
DROP USER user1;
exec public.dbms_stats.DROP_STAT_TABLE('SYSDBA','USER1_STAT_TABLE');
exec public.dbms_stats.DELETE_TABLE_STATS('USER1','TAB1');
create user user1 with password '123456Hh';
create table user1.tab1
(
a int,
b text
);
exec public.dbms_stats.CREATE_STAT_TABLE('SYSDBA','USER1_STAT_TABLE',null);
exec public.dbms_stats.gather_table_stats('USER1','TAB1');
exec public.dbms_stats.export_table_stats('USER1','TAB1', null, 'USER1_STAT_TABLE');
select STANAME from USER1_STAT_TABLE order by STANAME;
STANAME(name) |
-------------------
USER1_TAB1_DBMS_STA|
TS$ |
-------------------
USER1_TAB1_DBMS_STA|
TS$ |
总数目:2
--删除user1下的表tab1的统计信息
exec public.dbms_stats.DELETE_TABLE_STATS('USER1','TAB1');
delete from USER1_STAT_TABLE;
exec public.dbms_stats.export_table_stats('USER1','TAB1', null, 'USER1_STAT_TABLE');
select STANAME from USER1_STAT_TABLE order by STANAME;
STANAME(name) |
总数目:0
exec public.dbms_stats.DROP_STAT_TABLE('SYSDBA','USER1_STAT_TABLE');
DROP TABLE user1.tab1 CASCADE;
DROP USER user1;