26 Aralık 2011 Pazartesi

Heap Organized Table Ve Index Organized Table



Üç tür tablo çeşiti vardır.
Bunlar;
       Heap organization table
       Index organization table
       External organization table  
Biz burada sadece HOT ve IOT indeks yapılarını analiz edeceğiz. Ve karşılaştırmasını yapacağız.
Öncelikle  team tablosu oluşturacağız. Heap organized table’da Create cümlesinin sonunda “organization Heap” demeye gerek yoktur. Yazmadığımız zaman da bu HOT table olur. Default olarak tüm tablolar HOT’dur.




Sorgunun çalıştırılmasında kullanılan execution planda sorgunun erişiminde Index rowid’si kullanılmıştır. Yani indeks segmentindeki kayıtlı index bloğu kullanılmıştır.
Aşağıdaki tabloda HOT(heap organization table) ‘un index yapsını şeması vardır. Yani bir index segmenti içerisindeki index tablosundaki index bloğunun yapısını anlatmaktadır. 2 byte Row header’ a sahiptir ve 6 byte row id adresi tutulur.





HOT tablolarda ise table blok yapısı aşağıdaki gibidir. 3 byte Row Header’ a sahiptir.




Örnek bir IOT tablolardaki index yapısı aşağıdaki gibidir.





  •          Burada sadece bir index row header’a sahiptir. Index  uzunuluğu 3 karakter ve bilgisi FER dir.IOT için , Create table ifadesinden sonunda Organization Index zorundayız. Fiziksel table Rowid lerdetutulmazlar ,index Rowidlerde tutulur.
  •         IOT’ lar ayrı bir Table segmentine ihtiyaç duymaz. Primary Key  Constrainti almak zorundadır. İndex segment ismi primary key Constraint’ine bağlıdır.ismini oradan alır.( SYS_IOT_TOP_<object_id>)
  •          IOT’ lar LONG türünde kolonlar içermezler. Reversed index olamazlar. Yerden tasarruf sağlamak için sıkıştırılabilirler.
  •          IOT Tablolarda eğer primary key kolonu ilk sırada tanımlanmamışsa oracle bu yapıyı tekrardan bir reorder yapacaktır.

IOT Overflow table:

  • Çok büyük satırları IOT’ larda tutmak verimsiz bir davranıştır. Bu yüzden bu tür satırları overflow segmentinde saklamak daha mantıklıdır.
  •   Primary key  satırları indeks segmentinde bulunur. Non-key olan satırlar indeks  segmenti yada  overflow segmentinde bulunur. 
  • Overflow segmenti ilave extra bir table segmentidir. Bir indeks overflow için  row 6 byte Rowid içerir.

Aşağıda örnek bir IOT overflow index bloğu verilmiştir.
d

Karşılaştırma:
HOT ve IOT'u karşılaştıracak olursak daha az leaf kullancağından bilginin aranıp bulunması daha kısa sürer.
           



        


Resim Kaynakları: Julian Dyke
        

0 yorum:

Yorum Gönder