Oracle Veritabanı İstatistiği « Mustafa Bektaş Tepe
Tag: Oracle Veritabanı İstatistiği
Oracle veritabanı ilk piyasaya sürüldüğü yıllarda, bir SQL cümlesinin nasıl çalıştırılacağına RBO (Rule Based Optimizer) isimli bir optimizer karar veriyordu. Bu kurallara sıra atanıyor ve sıra değeri en yüksek olan kural işletiliyordu.
Rule Based Optimizer(RBO) : Adı üstünde “execution plan” çıkarırken belli bir sırada tanımlı kural tablosundan faydalanır.Bu kural tablosu aşağıdaki şekildedir :
Single Row by Rowid
Single Row by Cluster Join
Single Row by Hash Cluster Key with Unique or Primary Key
Single Row by Unique or Primary Key
Hash Cluster Key
Indexed Cluster Key
Bounded Range Search on Indexed Columns
Unbounded Range Search on Indexed Columns
MAX or MIN of Indexed Column
ORDER BY on Indexed Column
Daha sonra Oracle 7 ile birlikte CBO (Cost Based Optimizer) isimli daha kompleks bir optimizer oluşturuldu. Bu optimizer partitioning, paralel çalışma ve en önemlisi de verinin segmentler üzerinde nasıl dağıldığını da hesaba katacak şekilde geliştirildi.
CBO, mümkün olan tüm planları inceleyerek, COST değeri en düşük olan execution planı seçer. Buradaki COST’dan kastımız ise, verilen planın ne kadar kaynak kullanılacağının bir tahminidir. Bu tahminin gerçeğe yakın olabilmesi ve dolayısı ile COST’un yaklaşık olarak hesaplanabilmesi için CBO’nun tablo, index vb. segmentler hakkında ve bu segmentler üzerindeki veri dağılımlarının, density(yoğunluk), selectivity vb. bilgilerinden haberdar olması gerekmektedir. İşte bu bilgilere “OPTIMIZER STATISTICS”, veritabanı istatistiği denir.
NOT : Density değeri 0 ve 1 arasında bir decimal değerdir. 1’e yakın değerler kolonun unselective, 0’a yakın değerler ise selective (seçici) olduğunu gösterir. Density değerinin oluşabilmesi için tablo üzerinde gather statistics işlemi çalıştırılmalıdır. Density hesaplamak için “DENSITY = 1 / (NULL olmayan distinct değer sayısı)” örneğin “DENSITY = 1 / 2000 = 0,0005 ” dir.
İstatistik bilgileri USER_TAB_STATISTICS, USER_TAB_COL_STATISTICS… gibi data dictionary tabloları içerisinde saklanır.
Aşağıdaki sorguyu inceleyelim;
108 total views, 4 views today
Oracle ANALYZE, Oracle CBO, Oracle Cost Based Optimizer, Oracle DBMS_STATS, Oracle Density, Oracle GATHER_DATABASE_STATS, Oracle GATHER_SCHEMA_STATS, Oracle GATHER_STATS_JOB, Oracle GATHER_SYSTEM_STATS, Oracle GATHER_TABLE_STATS, Oracle HISTOGRAM, Oracle İstatistik, Oracle Maintenance Window, Oracle optimizer, Oracle Otomatik İstatistik Toplama, Oracle Rule Based Optimizer, Oracle Şema İstatitiği, Oracle Sistem İstatistiği, Oracle Tablo İstatistiği, Oracle VALIDATE STRUCTURE, Oracle Veritabanı İstatistiği Leave a Comment more...
Oracle Veritabanında SQL İzleme Yöntemleri