Hurriyet

28 Mart 2014 Cuma

Oracle Veritabanı: Storage Clauses - Depolama Seçenekleri

Veritabanı Yönetimi:

Veritabanının başlangıcından itibaren yaratılan nesnelerde nasıl depolama yapılacağının seçenekleri belirtilir. Bunu yarattığımız tablolarda, index'lerde, tablespace'lerde uygulayabiliriz. Ertesinde de, create ve alter komutlarıyla değişiklikler uygulanabilinir.

Storage İfadesi:

Storage ifadesinde değerlerin nasıl ve hangi değerlerle tutulacağını belirtiriz. Storage altında belirli parametreler vardır. Bu parametreleri aşağıdaki örnekte inceleyeceğiz.

 CREATE TABLE APPS.AMS_ACT_METRICS_MONTHLY_MV  
 (  
  TIME_ID    NUMBER             NOT NULL,  
  START_DATE  DATE,  
  END_DATE   DATE,  
  OBJECT_TYPE  VARCHAR2(30 BYTE),  
  OBJECT_ID   NUMBER,  
  METRIC_VALUE NUMBER,  
  METRIC_ID   NUMBER             NOT NULL  
 )  
 TABLESPACE APPS_TS_SUMMARY  
 RESULT_CACHE (MODE DEFAULT)  
 PCTUSED  0  
 PCTFREE  10  
 INITRANS  10  
 MAXTRANS  255  
 STORAGE  (  
       INITIAL     16K  
       NEXT       128K  
       MINEXTENTS    1  
       MAXEXTENTS    UNLIMITED  
       PCTINCREASE   0  
       BUFFER_POOL   DEFAULT  
       FLASH_CACHE   DEFAULT  
       CELL_FLASH_CACHE DEFAULT  
       )  
 LOGGING   
 NOCOMPRESS   
 NOCACHE  
 PARALLEL ( DEGREE DEFAULT INSTANCES DEFAULT )  
 MONITORING; 

Parametreler sırasıyla:

Initial: Yaratılacak nesnenin ilk  extent'inin ne kadar büyüklükte olacağını gösterir. Default değeri 5 Oracle block'udur. 8kb'lık blocksize'ı olan bir veritabanı için 40kb normal değerdir.

Next: Nesnenin initial block'tan sonraki ilk extent'inin boyutunu belirler. Bunun da default değeri 5  block'tur.
Bu değerin kullanılması için PCTINCREASE adlı parametre 0 olmalıdır. Eğer bu parametre 0'dan büyükse initial'dan sonraki extent Next ile belirlenen extent olur. Next ile belirlenen extent'den sonraki extent yani 3.extent Next ile belirlenen boyutun PCTINCREASE ile çarpılıp  Next ile toplanmış halidir. Yani PCTINCREASE 10 olsaydı 3. extent 128kb +(128*10)kb boyutunda olacaktı.

Minextents: Yaratılacak nesne için initial extent sayısını belirler.

Maxextents: Nesnenin sahip olabilieceği maksimum sayıdaki extent'i belirler. Unlimited olarak belirlenmesi tavsiye edilir.

Pctincrease: İnitial extent'den sonraki artış miktarını belirler.

Pctfree: Bir database bloğunda ileride gelebilecek update'ler için ne kadar boşluk bırakılması gerektiğini gösteren parametredir. Bu parametre sayesinde bir block belirtilen değere kadar doldurulur sonra da pctfree oranına göre yeni gelen datalar eklenmez. Ancak bu sütunlara yapılacak yeni değişiklikler(update'ler) bu alana yansıtılır.

select pct_free from dba_tables; sorgusuyla istenen tablonun alanı görülebilinir.


Referanslar:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/clauses009.htm


Hiç yorum yok:

Yorum Gönder