DELETE_SCHEMA_STATS¶
删除整个schema的所有统计信息。
声明¶
DBMS_STATS.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);
结构¶
| 参数 | 说明 |
|---|---|
| ownname | 目标Schema名称。 |
| stattab | 统计表名称。如果值为NULL,将直接从数据字典中删除统计信息。 |
| statid | 统计表stattab中统计记录Id(可选)。此参数只与stattab相关。 |
| statown | 统计表所在schema(如果与ownname不同)。 |
| no_invalidate | 收集统计信息相关游标是否有效。默认值为False。(暂时不生效) |
示例¶
DROP TABLE user1.tab1 CASCADE;
DROP TABLE user1.tab2 CASCADE;
DROP USER user1;
exec public.dbms_stats.DROP_STAT_TABLE('SYSDBA','USER1_STAT_TABLE');
create user user1 with password '123456Hh';
create table user1.tab1
(
a int,
b text
);
create table user1.tab2
(
a int,
b text
);
create or replace procedure dbms_stats_gather_schema() as
declare
a DBMS_STATS.ObjectTab;
b DBMS_STATS.ObjectTab;
begin
public.dbms_stats.GATHER_SCHEMA_STATS(
'USER1', 100, false, '', 1, '', false, '', '',
'', a, null, false, false, b);
end;
/
--构建环境
exec public.dbms_stats.CREATE_STAT_TABLE('SYSDBA','USER1_STAT_TABLE',null);
exec dbms_stats_gather_schema();
exec public.dbms_stats.EXPORT_SCHEMA_STATS('USER1','USER1_STAT_TABLE',null);
select STANAME from USER1_STAT_TABLE order by STANAME;
STANAME(name) |
-------------------
USER1_TAB1_DBMS_STA|
TS$ |
-------------------
USER1_TAB1_DBMS_STA|
TS$ |
-------------------
USER1_TAB2_DBMS_STA|
TS$ |
-------------------
USER1_TAB2_DBMS_STA|
TS$ |
总数目:4
delete from USER1_STAT_TABLE;
--删除user1下的所有表对象的统计信息
exec public.dbms_stats.DELETE_SCHEMA_STATS('USER1');
exec public.dbms_stats.EXPORT_SCHEMA_STATS('USER1','USER1_STAT_TABLE',null);
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 TABLE user1.tab2 CASCADE;
DROP USER user1;