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
        

1 Aralık 2011 Perşembe

Enterprise Manager Console ‘de ERROR: NMO not setuid-root (Unix-only) sorunu


Enterprise Managerda host bazı önemli işlerde host credintials girişler gerekmektedir. Dolayısıyla veritabanının kurulu olduğu ve sahiplenildiği user ‘ın login olması gerekmektedir.
Ve geçenlerde almış olduğum bir hatayı sizinle paylaşmak istiyorum. Linux işletim sistemi üzerinde mevcut oracle kullanıcımızın password ‘unu değiştirmiştim. Fakat enterprise manager’ da host credentials ekranında login olmak isterken ERROR: NMO not setuid-root (Unix-only) şeklinde bir hata aldım.
Ve aşağıdaki şekilde root olarak sisteme bağlanarak ve aşağıdaki işletim sistemi komutlarını girelim.

root#>
cd $ORACLE_HOME
chmod 6750 bin/nm?
chmod 700 bin/emdctl
chmod 700 bin/emagent
chown root bin/nm?

daha sonra oracle kullanıcına bağlanarak
oracle $>
emctl stop dbconsole
emctl start dbconsole
komutlarını girerek enterprise manager’i ayarların etkili olması için yeniden başlattım. Ve artık sorun çözülmüş oldu.