Hurriyet

7 Nisan 2014 Pazartesi

Oracle Veritabanı: Index Organized Tables

Index Organized Table(IOT) Nedir?

Index Organized Table normal bir tablonun aksine, kendi yapısına sahip bir tablodur. Row id'si yoktur.
Tablosuz bir index gibi düşünülebilinir. Normal bir tablo bir sürü veriyi sırasız bir şekilde tutat.  IOT tabloları verileri B-tree index yapısı içerisinde tutar. Normal bir tabloda her satırın belirli bir yeri varken, IOT bazlı tablolarda satırların belirli bir yeri yoktur. IOT'da datalar sıralı bir şekilde tutulurlar. Zamanı geldiğinde bu satırların yerleri değişebilir. Herhangi bir satır insert edildiğinde var olan bir satırın yerinin değişmesine neden olabilir.


Index Organized Table Avantajları:

Index bazlı tablolarda  satırlar primary key bazlı tutulmaktadır. Buna göre

-Tablolardaki verilere primary key üzerinden arama yapılığında hızlı erişim sağlayabiliriz. IOT tablolarında I/O  operasyonları minimize edilir. Sürekli rowid'ye bakılmaz.

-Çok erişilen tablolar için avantajlıdır. IOT bazlı tabloları online olarak reorganize edebiliriz.

-Yer olarak kazanım sağlar. Rowid'ler için fazladan yer gerekmez; çünkü rowid'ler kayıtlı olarak tutulmaz.

Index Organized Table Yaratma Örneği: 

 CREATE TABLE calisanlar  
   ( isim      CHAR(20),  
    yas     NUMBER
   )segment creation immediate  
 ORGANIZATION INDEX TABLESPACE IND_TBS;  

Tablespace ifadesi opsiyoneldir.  Eğer kullanıcının bulunduğu tablespace'de yaratılmayacaksa  kullanılı Segment Creation ifadesi de hemen dictionary'de gözükmesi için gereklidir. Eğer yazılmassa tabloya veri atılana kadar IOT tablomuz  gözükmez.

Index Organized Table Üzerinde DML:

IOT yapılı tablolarda aynen sıradan tablolardaki gibi değişitirilebilinirler.

INSERT INTO calisanlar VALUES ('Berke',20);  
 SELECT * FROM calisanlar;  
 UPDATE calisanlar SET isim = 'AHMET' WHERE isim = 'Berke';  
 DELETE FROM calisanlar WHERE yas = 20;





Hiç yorum yok:

Yorum Gönder