26 Kasım 2008 Çarşamba

"Index Organized Table" nedir?

Oracle'da birden fazla tablo yaratım seçeneği vardır. "create table" ile yarattığımız zaman "heap organized table" yaratmış oluruz. Heap, yani yığın, küme demektir. Bir diğer seçenek olarak Index Organized Table, Partitioned Table gibi seçenekler de mevcuttur. Bu tamamen o anki ihtiyaca ve kullanılması gereken tablo yapısına göre belirlenir.

Heap organized tablolar database file(.dbf) uzantılı dosyalarda ve extent-->block-->segment yapısı ile tutulur.

Neden "Index organized table"? Bir tablonun neden index ile yönetilmesini, organized edilmesini isteriz? Index Organized Table ne demek?

Index Organized Table bir B-tree index depolama çeşidir. Heap Organized Table'da olduğu gibi dağınık, sıralanmamış ve farklı yerde değildir. Index Organized tabloların verileri b-tree index yapısında tutulur ve primary key tarafından sort edilir.

Peki ne gibi faydaları var?

1) Primary Key kolonuna hızlı ve rastgele erişim sağlanır. Zaten index range scan yapıldığı için heap organized bir tabloya göre daha performanslıdır.
2) Çok daha düşük alan kaplar ve primary key orderında olduğu için range scan'de random scan'de bir heap tablo'ya göre daha hızlı gerçekleşir.

Bir Index Organized tablo, sanki bir heap tabloymuş gibi kullanılabilir. Yani, triggerlar yaratılabilir, partitioned olarak kullanılabilir. Ayrıca tablo üzerinde ikincil index yaratılmasına izin verir. Buna bitmap index de dahildir.

Bir heap tablo nasıl yaratılıyorsa, index organized tablo'da aşağı yukarı aynı şekilde yaratılır.

Örnek vermek gerekirse;

SQL> CREATE TABLE ogan_deneme(
2 kullanici_adi varchar2(40),
3 kullanici_numarasi number(20),
4 gorevi varchar2(50),
5 CONSTRAINT pk_ogan_deneme primary key (kullanici_adi))
6 ORGANIZATION INDEX
7 TABLESPACE users;

Table created.

Bir index organized tablo yaratmamız için primary key kullanmalıyız. Bu primary key üzerinden tablo organizasyonu kuruluyor ve primary key'in barındırdığı unique index ve not null özelliği ile korelasyon gerçekleşiyor.



İyi akşamlar,



Ogan

Hiç yorum yok:

Takip et: @oganozdogan