SET_INDEX_STATS
SET_INDEX_STATS 过程用于设置与索引相关的信息。
语法
DBMS_STATS.SET_INDEX_STATS (
ownname VARCHAR2,
indname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
numrows NUMBER DEFAULT NULL,
force BOOLEAN DEFAULT FALSE,
avgrlen NUMBER DEFAULT NULL,
nummacroblks NUMBER DEFAULT NULL,
nummicroblks NUMBER DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
tabname VARCHAR2 DEFAULT NULL);
参数说明
| 参数 | 解释 |
|---|---|
| ownname | 表所在的 Schema。 |
| indname | 索引名称。 |
| partname | 分区名称。 |
| no_invalidate | 收集统计信息是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。 |
| numrows | 索引中的行数(分区)。 |
| force | 是否强制设置索引统计信息,并忽略锁的状态。默认为 FALSE。如果设置为 TRUE,即使统计信息被锁定,也会设置索引统计信息。 |
| avgrlen | 索引表的平均行长(以字节为单位)。 |
| nummacroblks | 索引表宏块数。 |
| nummicroblks | 索引表的微块数。 |
| tabname | 表名称。 |
异常情况
| 错误码 | 描述 |
|---|---|
| HY000 |
|
使用说明
-
要调用此过程,必须是表的所有者。
-
优化器通过缓存数据来估计索引或统计表访问的缓存块数。操作的总成本包括从磁盘读取未缓存块的 I/O 成本、从缓冲区中获取缓存块的 CPU 成本以及处理数据的 CPU 成本。
示例
设置用户 testUser01 的索引 idx1 的相关信息。
CALL DBMS_STATS.SET_INDEX_STATS('testUser01', 'idx1', numrows=>10, avgrlen=>10,
tabname=>'tbl1');
Query OK, 0 rows affected
信息
seekdb 需要显式指定表名,因为索引在当前用户下是非唯一的