SQL Server Storage Kavramları(Page, Extents, GAM, SGAM, PFS, IAM, BCM, DCM)

5 Eki by NURULLAH ÇAKIR

SQL Server Storage Kavramları(Page, Extents, GAM, SGAM, PFS, IAM, BCM, DCM)

SQL Server’ın storage üzerindeki en temel birimi Page’dir. Her bir page 8 KB’dan oluşur. İşletim sisteminden disk allocate eden(mdf ya da ndf dosyalarının büyümesi,disk alanı tahsis etmesi olarak düşünebilirsiniz.)mdf ya da ndf dosyaları mantıksal olarak page’lere bölünür. Disk üzerinden yapılan IO page seviyesinde gerçekleşir. SQL Server Page’leri yönetmek için Extent’leri kullanır.

 

Her Extent 8 page’den oluşur ve 64 KB boyuta sahiptir. İki tip extent vardır.

 

  • Uniform Extents(Sadece bir objenin sahip olduğu Extent tipi)
  • Mixed Extents(Birden fazla objenin sahip olduğu Extent tipi. Bir extent’te 8 page olduğu için bir extent içinde en fazla 8 objeye ait page olabilir)

 

SQL Server alanı daha verimli kullanabilmek için bir objeye direk bir Uniform Extent tahsis etmez. Öncelikle Extent’i Mixed Extent olarak oluşturur. Eğer aynı obje 8 page’i dolduracak kadar büyürse bu oluşturulan Mixed Extent daha sonra Uniform Extent’e dönüştürülür.”Diskimizi maksimum performansta kullanabiliyor muyuz?” isimli makalemi okumanızı tavsiye ederim.

 

SQL Server’daki page tipleri aşağıdaki gibidir:

 

Data Pages

Text,ntext,image,nvarchar(max),varchar(max),varbinary(max) ve xml veri tipi dışındaki tüm veri tipleri data page’lerde tutulur.

Index Pages

Indexler, Index page’lerde tutulur.

Text/Image Pages

Text,ntext,image,nvarchar(max),varchar(max)varbinary(max) ve xml veri tipleri tutulur.

Varchar,nvarchar,varbinary veri tiplerini kullanan kolonlar için veri boyutu 8 KB’ı geçerse bu veriler Text/Image page’lerde tutulur

Global Allocation Map Pages,

Shared Global Allocation Map Pages

Gam page’lerde Hangi Extentler allocate edilmiş, hangileri allocate edilmemiş bilgisi tutulur.

SGam page’lerde Hangi Extentler Mixed Extent olarak kullanılıyor bilgisi tutulur.

Page Free Space Pages

PFS Extent’lerdeki hangi page’de ne kadar boş alan var bunun bilgisi tutar.

Index Allocation Map Pages

Hangi page’in hangi objeye ait olduğu bilgisi tutulur.

Bulk Changed Map

En son alınan log backup’tan sonraki bulk işlemler tarafından değiştirilen Extent’lerin bilgisi tutulur.

Differential Changed Map

En son alınan backup’tan sonra değişen Extent’lerin bilgisi tutulur.

2 Comments

  1. Elinize sağlık, çok güzel bir yazı olmuş. Birde makeleler içerisindeki bahsettiğiniz eski makalelerinize link verirseniz çok daha güzel olacak 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.