跳到主要内容

IMPORT_INDEX_STATS

IMPORT_INDEX_STATS 过程用于从用户信息统计表中检索指定索引的统计信息并将它们存储在字典中。

语法

DBMS_STATS.IMPORT_INDEX_STATS (
ownname VARCHAR2,
indname VARCHAR2,
partname VARCHAR2 DEFAULT NULL,
stattab VARCHAR2,
statown VARCHAR2 DEFAULT NULL,
no_invalidate BOOLEAN DEFAULT FALSE,
force BOOLEAN DEFAULT FALSE,
tabname VARCHAR2 DEFAULT NULL);

参数说明

参数说明
ownname用户名。如果用户名设置为 NULL,会默认使用当前登录的用户名。
tabname表名称。
indname索引名称
partname分区的名称。如果表已分区而 partnameNULL,则导入全局和分区列统计信息
stattab指定导入的用户统计信息表的表名。
statown指定导入的用户统计信息表的用户名。
no_invalidate收集统计信息时是否刷 Plan Cache。设置为 TRUE 表示收集统计信息时不刷 Plan Cache。
force是否强制导入,并忽略锁的状态。默认为 FALSE。如果设置为 TRUE,即使索引统计信息被锁定,也会导入索引统计信息。

异常情况

错误码描述
HY000
  • 该对象不存在或权限不足。
  • 用户信息统计表中的值无效或不一致。
  • 该对象的统计信息被锁定。

使用说明

不支持跨不同字符集的数据库导出或导入统计信息。

示例

test_stat 中导入用户 testUser01tbl1 表的 idx1 索引的统计信息并存储到字典中。

CALL DBMS_STATS.CREATE_STAT_TABLE('testUser01', 'test_stat');
Query OK, 0 rows affected

CALL DBMS_STATS.IMPORT_INDEX_STATS('testUser01', 'idx1',stattab=>'test_stat',tabname=>'tbl1',no_invalidate=>FALSE);
Query OK, 0 rows affected
信息

seekdb 需要显式指定表名,因为索引在当前用户下是非唯一的