Lock and unlock the optimizer statistics Schema, table and Partition

Lock/unlock stats for Schema, table and Partition

Check the status is locked/unlocked

--Check Stats is locked for table (if ALL is return then its locked otherwise NULL)
SELECT stattype_locked FROM dba_tab_statistics WHERE table_name = 'TEST' and owner = 'HR';
STATT

-----
ALL


--Check list of table Stats locked in Schema HR

SELECT table_name,stattype_locked,partition_name FROM dba_tab_statistics WHERE owner = 'HR' and stattype_locked is not null;

-- Check list of locked partition stats in Schema and table name

SELECT table_name,stattype_locked,partition_name FROM dba_tab_statistics WHERE owner = 'HR' and table_name='EMPLOYEES' and stattype_locked is not null;

Lock and unlock the stats for Schema

-- lock the schema stats
EXEC DBMS_STATS.LOCK_SCHEMA_STATS('schema_name');

--unlock the schema stats
EXEC DBMS_STATS.UNLOCK_SCHEMA_STATS('schema_name');

Lock and unlock the stats of table

--Lock the stats for the table
exec dbms_stats.lock_table_stats('schema_name', 'table_name');

--Unlock the stats for the table
exec dbms_stats.unlock_table_stats('schema_name', 'table_name');

Lock and unlock the stats of Table Partition

-- Lock the Partition Stats
exec dbms_stats.lock_partition_stats('Schema_name', 'table_name', 'partition_name');

--unlock the partition stats
exec dbms_stats.unlock_partition_stats('Schema_name', 'table_name', 'partition_name');

3 thoughts on “Lock and unlock the optimizer statistics Schema, table and Partition

  1. Unknown's avatarAnonymous

    Hi Sandeep

    There is a typo in your unlock command for Partition Statistics. You have put lock command for Unlock also. Please correct it. Thanks.

    Reply
  2. Unknown's avatarAnonymous

    not exactly, but you can stop the automatic stats job as

    BEGIN DBMS_AUTO_TASK_ADMIN.DISABLE (client_name => ‘auto optimizer stats collection’, operation => NULL, window_name => NULL); END;

    Reply

Leave a Reply