ALLOCATION UNITE ve Performansa Etkisi

Reading Time: 2 minutes

Allocation Unite ‘i açıklamadan önce SQL Server da verileri fiziksel olarak nasıl ve nerede tuutyoru açıklayalım. Veriler her biri 8 KB dan oluşan Data Page lerde depolanır. Page ler Storage da ki en temel birimdir. Her bir Page az önce de bahsettiğim gibi 8 KB dan oluşmaktadır.

Extend kavramı ise , Fiziksel olarak sıralı 8 Page den oluşmaktadır. Bu şekilde bir Extend in boyutu 8X8 den 64 KB’ tır. Extendler page lerin verimili bir şekilde yönetilmesine yardımcı olur.

Extend ler kendi aralarında ikiye ayrılır;

a.Mixed Extent : Farklı nesnelere ait Page lerin bir araya gelmesiyle oluşur.

b.Uniform Extent : Aynı nesneye ait page lerin bir araya gelmesiyle oluşur.

Yukarıdaki bilgiler eşliğinde ilk etapta disk mimarisi için Allocation Unite ne anlama geliyor bunu sizinle paylaşmak istiyorum ki konuları aşağıdan yukarıya doğru çıkararak yapı ve mimariyi daha iyi anlamanızı sağlamak istiyorum.

Disk mimariisnde ki Allocation Unite kavramı ,disk üzerinde ki sektör kümesini temsil eder yani yönetilebilir en küçük disk alanıdır. Bu sebepten dolayı Allocation Unit ‘in Size ‘ı SQL Server için büyük önem arz etmektedir.

Allocation Unite Size , Default olarak 4 KB ‘tır. SQL Server için tavsiye edilen değeri 64 KB ‘tır.

Şimdi nedne SQl Server için 64 KB diye soruyorsunuz. Bunu hemen açıklamak gerekirse , yuakrıa datanın Page lerde Page lerin de Extend ler içerisinde tutulduğunu anlatmıştık.

Bir senaryo üretelim ve onun üzerinden anlatalım süreci. SLQ Server üzeirnden 1 Uniform Extent veri okumak istediğimizi düşünelim ve bu veirnin Memory de barındırılmadığınıda biliyoruz. Bu senaryoda Disk imizin Allocation Unite Size ını Default olarak bıraktık ve okuma işlemini gerçekleştirmek için diske toplamda 64 KB / 8 KB = 16  kere erişmemiz gerekmekte. 1 Uniform Extend 64 KB ve biz tam 64 KB veriyi diskten okumak istediğimizde ve disk üzerinde en küçük birim olan Allocation Unite in Size ‘ı da default olarak yani 4 KB olarak bırakıldığından bu size da ki datayı okumak için 16 kere diske gitmemiz gerekecek.

Peki biz Disk imizin Allocation Unite ‘ın Size ını Default bırakmayıp SQL Server ın istediği 64 KB ‘a SET ettiğimizde 1 Uniform Extent i okumak istediğimizde ki durum nasıl olacaktı. 64 KB /64 KB = 1 kere diske gidilecek ve okunmak istenilen data bir kerede okunacaktı.

Aradaki hesaplamayı ve sistemlerinizde ki maliyetin hesaplamasını sizlere bırakıyorum arkadaşlar. PowerShell veya CommandPrompt ekranından sorgulayacağınız diski aşağıdaki gibi scripti yazıp Diski belirtirseniz diskin Allocation Unite Size değerini görmüş oluyorusnuz.

Çıkan sonuçta Bytes Pers Cluster değerini kontrol ediyoruz ki örneğimizde bu değer 4096 Byte yani 4 KB ‘tır.

Peki 4 KB olan diskimizin Allocation Unite Size ‘ını Nasıl değiştiriyoruz ?

Bunun için , var olan diskin üzerine gelip sağ tıklıyoruz.

Açılan pencerede Format… sekmesine tıklıyoruz.

Daha sonra gelen ekranda Allocation Unite Size değerini 4096 byte dan 64 KB seçerek diskimizi formatlamamız gerekmektedir.

 

İyi Çalışmalar.

Leave a Reply

Your email address will not be published. Required fields are marked *