LOCK_SCHEMA_STATS

2023-12-25 08:49:42  Updated

The LOCK_SCHEMA_STATS procedure locks statistics for all tables in a schema.

Syntax

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

Parameters

Parameter Description
ownname The name of the schema.
stattype The type of the statistics to be locked. Three types are supported:
  • 'ALL'
  • 'DATA'
  • 'CACHE'

Considerations

  • To call this procedure, you must be the owner of the table. If the object is in the sys tenant, you must be the owner of the table or have the SYSDBA privilege.

  • When statistics on a table are locked, all statistics dependent on the table are locked, including table-level statistics, column-level statistics, histogram statistics, and statistics on all dependent indexes.

  • If the statistics on an object are locked, an error occurs when you execute a SET_*, DELETE_*, IMPORT_*, or GATHER_* procedure to modify the statistics on a single table, index, or column.

  • When you call the EXPORT_*_STATS procedure, the lock or unlock status is not exported with the table-level statistics.

  • The UNLOCK_SCHEMA_STATS or UNLOCK_TABLE_STATS procedure cannot unlock the statistics on corresponding partitions. When you call the LOCK_TABLE_STATS procedure, it will set a table-level lock position. In this case, you cannot collect statistics on dependent objects such as partitions and indexes. In addition, if table-level statistics are locked, the dependent objects are also locked. In this case, you do not need to explicitly call the LOCK_PARTITION_STATS procedure to lock partition statistics.

Examples

Lock the statistics on all tables in the hr schema.

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

Contact Us