deferred_segment_creation Initial Parametresinin Kullanımı

Bu parameter oracle 11.2 versiyonu ile tanıştığımız bir parametre, tablonun ilk create edildiği anda (null olarak tabi) ona default olarak bir block atanıp atanmayacağının set edildiği parametredir. Parametre TRUE ve FALSE olmak üzere 2 farklı değer alabilir. Defaultta FALSE olarak geliyor.

Sırayla TRUE veya FALSE olması durumunda bizi nelerin beklediğine bir bakalım ;

Parametrenin şu anki değerini check ederek başlayalım ;

Boş bir test tablosu oluşturup stucture’ ını kontrol edelim ;

Dba_tables view’ inde görebiliyormuyuz kontrol edelim ;

Burada dikkat ederseniz segment_created NO yani tablonun create edilme aşamasında hiçbir segment assign edilmemiş durumda, blocks alanında da bu yüzden 0 olarak görüyoruz. Bu yüzdendirki aşağıdaki viewlerde henüz tablomuza ait bir iz yok.

Bu değerin TRUE olması demek aslında tablonun create scriptinin syntax’ ında SEGMENT CREATION DEFERRED parametresinin olması anlamına gelir. Bunun syntax’ i da aslında arka tarafda aşağıdaki gibidir ;

Yani bu parametreyi TRUE olarak tablo create etmek ile SEGMENT CREATION DEFERRED parametresini kullanarak create etmek arasında fark bulunmamaktadır.

Şimdi bu değerin FALSE olması durumunda neler olduğuna bakalım ;

Test tablomuzu yine aynı şekilde create edelim ;

Dba_tables view’ indeki duruma bakalım ;

Initial extend neden 65536 değeri 8k block size ‘ımız olduğu için bu şekilde geliyor (1024*8*8) . Tablo her ne kadar boş olsa da create edilme aşamasında bir block atandığından dolayı artık (8 k ‘ lık block kullandığımız dan dolayı) aşağıdaki view’ de de block kısmında 8 olarak görmemiz gerekiyor.

Tablomuzun bir block’ uğuda olduğundan dolayı artık dba_segments view’ indede görebiliyor olmamız gerekiyor. Bakalım ;

Bu değerin FALSE olması demekde aslında tablo creation scriptinin aşağıdaki gibi olması anlamına geliyor ;

Toparlarsak 11.2 ile birlikte tablo create etmek istersek segment create aşamasında kullanabileceğimiz iki farklı parametre bulunmaktadır. Bu parametrelerin kullanımı da bir initial parametre sayesinde db seviyesinde kullanımı basitleştirilmiştir diyebiliriz.