CREATE TABLE” veritabanı ile uğraşan herkesin sıklıkla kullandığı bir komuttur.Genellikle
CREATE TABLE owner.T (
ID NUMBER(30),
STR VARCHAR2(200),
STR2 VARCHAR2(200)
);
şeklinde kısaca yazar geçeriz.Halbuki bu kısa kodun arkasında pek çok varsayılan parametre set edilmektedir.Bu parametreleri tablo oluşurken ya da oluşturduktan sonra belirlemek mümkün.Oracle’da ”CREATE TABLE” komutu uzun hali ile yazılmak istenirse mesela aşağıdaki gibi olacaktır :
CREATE TABLE owner.T (
ID NUMBER(30),
STR VARCHAR2(200 BYTE),
STR2 VARCHAR2(200 BYTE)
)
TABLESPACE theTableSpace
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
LOGGING
Görüldüğü üzere bir dizi parametre var.Şimdi “en sık karşımıza çıkacak olanlara” kısaca değinmeye çalışalım:
TABLESPACE : Tablonun oluşturulacağı “tablespace”’i belirtir.Bir değer girilmezse tablonun bulunduğu şemanın(schema) varsayılan “tablespace”’inde oluşturulur.
PCTFREE : Tablonun her bir “data block”’unda update’ler sonucu oluşan değişiklikler için tutulan alandır.0-99 arası değer alır, varsayılan değeri 10’dur.Yüzde “%” ile ifade edilir.”0” verilirse “data block”’un tamamının “insert” için kullanılacağı anlamına gelir.Bu alanın değerinin seçimi önemlidir.Sık “update” gören bir tabloda 5-10 gibi küçük değerler verilmesi “update” sonucu oluşan yeni verinin başka “data block”lara taşınmasına sebeb olur.Bu da tabloya ulaşımda, sorgularda performans problemine yol açar.
PCTUSED : 1-99 arası değer alır.Varsayılan değeri 40’tır. Yüzde “%” ile ifade edilir.Bir “data block” belirlenen pctused değerinin altına düşünce “insert” işlemi yapılmaya aday blok anlamına gelir.Mesela bu değerimiz %40 ise “data block”’un kullanılan alan % değeri de %40 ın altına düşerse bu data block insert” için kullanılabilir demektir.
PCTFREE ve PCTUSED parametrelerinin toplamı 100’den az olmalıdır.Tablo oluştururken her ikisi birden kullanılbileceği gibi ayrı ayrı da belirlenebilirler.
INITRANS : 1-255 arası değer alır.Varsayılan değer “1”dir ve bunun dışında belirlenmemesi önerilir.Bir “data block” ta yapılan her update bir “transction entry” gerektir.Bunun değerini belirtir.
MAXTRANS : Varsayılan değer dışında belirlenmemesi önerilir.1-255 arası değer alırlar.10g ile birlikte otomatik olarak ayarlanmaktadır.Oracle gerektiğinde bu değeri kendisi 255e kadar otomatik arttırmaktadır.
LOGGING-NOLOGGING : Tablo oluşturma işleminin loglanıp loglanmaması bilgisidir.Varsaylan “LOGGING”’tir.NOLOGGING yapmak istersek örnek :
create table T nologging as select * from T2;
Tablo oluşturken kullanılan bundan başka parametrelerde vardır(CACHE, COMPRESSED,PARALLEL, ROW MOVEMENT,…).Bunlar hakkında detay bilgiye Oracle dökümanlarından bakılabilir.