跳到主要内容

LOCK_SCHEMA_STATS

LOCK_SCHEMA_STATS 过程用于锁定 Schema 中所有表的统计信息。

语法

DBMS_STATS.LOCK_SCHEMA_STATS(
ownname VARCHAR2,
stattype VARCHAR2 DEFAULT 'ALL');

参数解释

参数解释
ownnameSchema 的名称。
stattype加锁的类型。一般包括如下三种加锁类型:
  • 'ALL'
  • 'DATA'
  • 'CACHE'

使用说明

  • 要调用此过程,您必须是表的所有者。

  • 当一个表的统计信息被锁定时,所有依赖于该表的统计信息都会被锁定,包括表级统计信息、列级统计信息、直方图统计信息和所有依赖索引的统计信息。

  • 如果对象的统计信息被锁定,则执行 SET_*DELETE_*IMPORT_*GATHER_* 过程进行修改单个表、索引或列的统计信息时将引发错误。

  • 使用 EXPORT_*_STATS 过程时,锁定或解锁状态不会与表级统计信息一起导出。

  • UNLOCK_SCHEMA_STATS 过程和 UNLOCK_TABLE_STATS 过程都不能解锁相应分区的统计信息。当您调用 LOCK_TABLE_STATS 过程时,它会在表级别设置锁定位置,此时您无法收集有关分区和索引等依赖对象的统计信息。另外,如果表级统计信息被锁定,其依赖项也会被锁定,就不需要显式调用 LOCK_PARTITION_STATS 过程来锁定分区统计信息。

示例

锁定 hr Schema 下所有表的统计信息。

CALL DBMS_STATS.LOCK_SCHEMA_STATS(ownname=>'hr', stattype=>'ALL');
Query OK, 0 rows affected