Stale istatistikleri bul ve tablo bazlı istatistik tercihlerini (prefs) ayarla
OracleİstatistikKomut
-- 1) DML sayaclarini sozluge yaz ve stale olanlari listele:
EXEC DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
SELECT owner, table_name, partition_name, num_rows,
TO_CHAR(last_analyzed,'YYYY-MM-DD HH24:MI') AS last_analyzed,
stale_stats, stattype_locked
FROM dba_tab_statistics
WHERE owner = 'MUSTERI_APP'
AND (stale_stats = 'YES' OR last_analyzed IS NULL)
ORDER BY table_name, partition_name;
SELECT table_name, partition_name, inserts, updates, deletes, truncated
FROM dba_tab_modifications
WHERE table_owner = 'MUSTERI_APP';
-- 2) Tablo bazli tercihler (auto stats job ve manuel GATHER bunlari kullanir):
EXEC DBMS_STATS.SET_TABLE_PREFS('MUSTERI_APP', 'SATISLAR', 'STALE_PERCENT', '5');
EXEC DBMS_STATS.SET_TABLE_PREFS('MUSTERI_APP', 'SATISLAR', 'METHOD_OPT', 'FOR ALL COLUMNS SIZE AUTO FOR COLUMNS SIZE 254 MUSTERI_ID');
EXEC DBMS_STATS.SET_TABLE_PREFS('MUSTERI_APP', 'SATISLAR', 'DEGREE', '4');
SELECT DBMS_STATS.GET_PREFS('STALE_PERCENT', 'MUSTERI_APP', 'SATISLAR') AS stale_pct FROM dual;
SELECT table_name, preference_name, preference_value
FROM dba_tab_stat_prefs WHERE owner = 'MUSTERI_APP';
-- 3) Yalniz stale olanlari topla:
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'MUSTERI_APP', options => 'GATHER STALE');
-- Tercihi geri al: EXEC DBMS_STATS.DELETE_TABLE_PREFS('MUSTERI_APP', 'SATISLAR', 'STALE_PERCENT');Ne yapar?
Tablo değişiklik oranı STALE_PERCENT'i (varsayılan %10) aşınca istatistik stale sayılır. Tercihler (prefs) tablo bazında örnekleme, histogram, paralellik ve stale eşiğini kalıcı kılar; böylece gece otomatik istatistik görevi de aynı kuralları uygular.
Ne zaman kullanılır?
Büyük tablolarda %10 eşiği geç kaldığında, belirli kolonlara histogram zorunlu kılınacaksa, toplama stratejisini script yerine sözlükte tanımlamak için.
Dikkat
Lisans gerektirmez. Manuel GATHER çağrısında açıkça verilen parametre tercihin önüne geçer. METHOD_OPT değişikliği histogramları ekler/kaldırır ve planları değiştirebilir. DBA_TAB_MODIFICATIONS ancak flush sonrası güncel olur (otomatik flush ~15 dk'da bir).