DBAtlas · Veritabanı operasyon atlası

Tablo/şema istatistiklerini kilitle ve kilidi aç

Oracleİstatistik

Komut

-- Kilitle (auto stats job ve normal GATHER artik dokunmaz):
EXEC DBMS_STATS.LOCK_TABLE_STATS(ownname => 'MUSTERI_APP', tabname => 'SIPARIS');
EXEC DBMS_STATS.LOCK_SCHEMA_STATS(ownname => 'MUSTERI_APP');
-- Yalnizca bir partition: DBMS_STATS.LOCK_PARTITION_STATS('MUSTERI_APP', 'SATIS_PART', 'P2026_H1');

-- Kilitli olanlar:
SELECT owner, table_name, partition_name, stattype_locked
FROM   dba_tab_statistics
WHERE  owner = 'MUSTERI_APP' AND stattype_locked IS NOT NULL;

-- Kilitliyken bilincli toplama (ORA-20005 yerine):
EXEC DBMS_STATS.GATHER_TABLE_STATS('MUSTERI_APP', 'SIPARIS', force => TRUE);

-- Kilidi ac:
EXEC DBMS_STATS.UNLOCK_SCHEMA_STATS(ownname => 'MUSTERI_APP');
EXEC DBMS_STATS.UNLOCK_TABLE_STATS(ownname => 'MUSTERI_APP', tabname => 'SIPARIS');

Ne yapar?

İstatistikleri değişmeye karşı kilitler; otomatik görev kilitli nesneleri atlar, tablo bazlı GATHER çağrısı ORA-20005 verir. force=>TRUE kilidi delmeden toplama yapar.

Ne zaman kullanılır?

Gün içinde boşalıp dolan staging/geçici tablolar için temsilî istatistik sabitlemek, kritik tabloda planı istatistik değişimine karşı korumak, set edilmiş (DBMS_STATS.SET_TABLE_STATS) değerleri korumak için.

Dikkat

Lisans gerektirmez. Kilitli istatistikler zamanla gerçeklikten uzaklaşır ve cardinality hatalarına yol açar; kilitli nesneleri düzenli raporla. Şema kilidi şemaya sonradan eklenen tabloları kapsamaz. Kilitli tabloda index oluşturma/rebuild ile otomatik index istatistiği de toplanmaz.

DBAtlas'ta aç →

İlgili