首批通过分布式安全可靠测评,为关键业务系统打造
UNLOCK_SCHEMA_STATS
更新时间:2026-04-30 18:36:40
UNLOCK_SCHEMA_STATS 过程用于解锁用户中所有表的统计信息。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版暂不支持。
语法
DBMS_STATS.UNLOCK_SCHEMA_STATS (
ownname VARCHAR2,
stattype VARCHAR2 DEFAULT 'ALL');
参数解释
| 参数 | 解释 |
|---|---|
| ownname | 用户名称。如果用户名设置为 NULL,会默认使用当前登录用户名。 |
| stattype | 加锁的类型。一般包括如下三种加锁类型:
'ALL' 类型。 |
使用说明
要调用此过程,您必须是表的所有者。对于
SYS拥有的对象,需要是表的所有者或SYSDBA权限才能调用此过程。当一个表的统计信息被锁定时,所有依赖于该表的统计信息都会被锁定,包括表级统计信息、列级统计信息、直方图统计信息和所有依赖索引的统计信息。
如果对象的统计信息被锁定,则执行
SET_*、DELETE_*、IMPORT_*、GATHER_*过程进行修改单个表、索引或列的统计信息时将引发错误。UNLOCK_SCHEMA_STATS过程和UNLOCK_TABLE_STATS过程都不能解锁相应分区的统计信息。当您调用LOCK_TABLE_STATS过程时,它会在表级别设置锁定位置。此时,您无法收集有关分区和索引等依赖对象的统计信息。另外,如果表统计信息被锁定,依赖项也会被锁定,就不需要显式调用LOCK_PARTITION_STATS过程来锁定分区统计信息。
示例
解锁 hr 所有表的统计信息。
obclient [SYS]> CREATE USER hr IDENTIFIED BY 123456;
Query OK, 0 rows affected
obclient [SYS]> CALL DBMS_STATS.UNLOCK_SCHEMA_STATS ('hr', stattype=>'ALL');
Query OK, 0 rows affected