Oracle Kavramlari - Segment
Friday, November 7, 2014
Oracle Kavramlari - Segment
Oracle veritabininda segment veritabani nesnelerini iceren bir nevi tasiyici yapidir. Extent ise her segment, yani tasiyici yapinin bir parcasidir. Her bir extent bir veya birden cok ardisik bir blok, bilgi kutugudur. High water mark ise bir segment i kullanilan ve serbest bloklara boler. HWM isaretinin altindaki bloklar en azindan bir kez bilgi saklamak icin kullanilmistir. Oracle veritabani isaretin ustundeki bloklarin bilgi islemek icin hic kullanilmadigini kabul eder ve full table scan kosturuldugunda bu isarete kadar olan tum bloklari okur. Segment in baslik kisminda Oracle bu segment icin HWM isaretinin adresini tutar. Normal veritabani islemlerinde , HWM isareti sadece yukari ve asagi hareket eder. Saklanacak bilgi icin sabit surucu uzerinde yer Extent olarak ayristirilir. Bir veya birden cok Extent Segment i olusturur. Her bir Extent bir Tablespace e aittir.Oracle da 11 tane Segment tipi vardir
- Table,
- Table partition,
- Index,
- Index partition,
- Cluster,
- Rollback,
- Deferred rollback,
- Temporary,
- Cache,
- Lobsegment,
- Lobindex
Bu Segment tipleri 4 baslik altinda gruplanabilir.
Data-Table ve cluster
Index,
Rollback,
Temporary data,
Her Segment bastan belirlenmis -sinirli- veya sinirsiz miktarda Extent icerebilir. Data segment dedigimiz Table ve Cluster icin Oracle, serbest bloklarin miktarini tutar. Segment basligi ilk Extent icindeki ilk blokta saklanir ve Extent tablosunu, Serbest Liste tanimlayicilarini ve HWM isaretini icerir.
Serbest Liste tanimlayacisini anlamak icin data block address kavramina bakmamiz gerekir. Bu bellek adresi veritabani icindeki her biri blogun essiz tanimlayicisidir. Bu adres data file ve block numarasindan uretilir. Data file ise Oracle veritabanin bir parcasi olup kullanici ve undo bilgisini saklar. Bu bilgi dosyalari tablespace olarak gruplanir.
Serbest liste tanimlayacisina geri donersek ; HWM isareti altinda kalan serbest alanlar freelist ile yonetilirler.Bir Segment e ait olup iceresinde serbest yazma alanina sahip olanlar Extent ler bu freelist icerisindedir. Tablo ya yeni bir satir INSERT ile yazilacaginda bu freeliste gidilir ve ilk musait blok un adresi alinir. Bu yazma eger blokta kalan musait serbest alandan buyuk yer kapliyorsa, bu blok serbest listeden cikartilir, tersi durumunda yani yazmadan sonra eger hala bu blokta yer kaliyorsa freelist de kalmaya devam eder.
Freelist den yazmaya musait blok adreslerinin alinmasi birbirini izleyen ardisik bir yordamdir. Birden cok yordamin sirali bir bicimde ve onlardan sadece birisinin freelist e erisip serbest blok baslangic ve bitis adresini degistirmesi icin bir bayraga ihtiyacimiz vardir. Hangi yordam bu bayragi alirsa,birakincaya kadar sadece o bu freelist i guncelleyebilir. Paralel calisma ile perfromansi arttirmak icin Oracle ana yordami,Segment in freelist ini alir ve yazma/guncelleme yogunluguna gore onu birden cok freelist lere boler. Bu sayade birden cok yordam bir segment icindeki serbest blok alanlarini bularak guncelleme yapabilirler.Freelist icerisinde , yukarida bahsettigimiz bayrak ve serbest blok baslangic ve bitis adresleri bulunur.
Bazi SQL fonksiyonlarinin musait bellek alani icinde kosturulmasi tamamlanmamissa gecici Segment lere ihtiyac vardir. create index, select order by, select distinc bunlara ornek olarak verilebilir. Gecici Segmentleri gecici tablespace lerde saklamak daha verimli bir cozumdur.
- Oracle Archived Redo Logs Oracle veritabaninda yapilan herhangi bir degisiklik o...
- Oracle Veritabani BloklariSerbest bloklar HWM isaretinin altinda kalan bloklar o...
- Oracle SGA Kavrami Oracle programi baslatilirken SGA bellek alani isletim siste...
No comments :
Post a Comment