GATHER_TABLE_STATS¶
收集Schema中所有对象的统计信息。
声明¶
DBMS_STATS.GATHER_TABLE_STATS (
ownname VARCHAR2,
tabname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
estimate_percent NUMBER DEFAULT 100,
block_sample BOOLEAN DEFAULT FALSE,
method_opt VARCHAR2 DEFAULT 'FOR ALL COULMNS',
degree NUMBER DEFAULT 1,
granularity VARCHAR2 DEFAULT 'ALL',
cascade BOOLEAN DEFAULT FALSE,
stattab VARCHAR2 DEFAULT NULL,
statid VARCHAR2 DEFAULT NULL,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
stattype VARCHAR2 DEFAULT 'DATA',
force BOOLEAN DEFAULT FALSE)
结构¶
| 参数 | 说明 |
|---|---|
| ownname | Schema的用户名。 |
| tabname | 参与统计的列的采样率。 |
| partname | 获取统计信息的表的分区或子分区名称(暂未启用)。 |
| estimate_percent | 参与统计的列的采样率。 |
| block_sample | 是否进行块采样,默认列行采样(暂未启用)。 |
| method_opt | 可选函数操作(暂未启用)。 |
| degree | 并行度(暂未启用)。 |
| granularity | 采样的粒度(暂未启用)。 |
| cascade | 是否统计所有索引信息(暂未启用)。 |
| stattab | 统计表名称(暂未启用)。 |
| statid | 在stattab中统计记录id(暂未启用)。 |
| statown | 统计表所在schema(如果与ownname不同,暂未启用)。 |
| no_invalidate | 是否生效相关游标(暂未启用)。 |
| stattype | 统计类型(暂未启用)。 |
| force | 是否统计加锁对象(暂未启用)。 |
示例¶
DROP TABLE user1.tab1 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
);
exec public.dbms_stats.CREATE_STAT_TABLE('SYSDBA','USER1_STAT_TABLE',null);
--获得user1下的表tab1的统计信息
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
exec public.dbms_stats.DROP_STAT_TABLE('SYSDBA','USER1_STAT_TABLE');
DROP TABLE user1.tab1 CASCADE;
DROP USER user1;