SQL Server kullanırken karşılaştığımız sorunların büyük kısmı I/O kaynaklıdır.Bu sebeple SQL Server I/O işlemlerini azaltmak adına sık eriştiği verileri içeren page'leri diskten okumak yerine RAM üzerinde Buffer Pool ya da buffer cach'da tutmaktadır. Bu sebeple makineye fiziksel olarak RAM eklemek Buffer Pool için kullanılacak alanı boyutunu büyütecek ve buna paralel olarak performans artacaktır. Fakat bazı durumlarda halihazırda kullandığımız makinelere daha fazla RAM eklemek mümkün olmayabilir. Örneğin kullandığımız makinenin donanım desteği yeni RAM eklenmesine izin vermiyorsa veya işletim sistemi seviyesinde kullanabileceğimiz maksimum RAM miktarı sınırlıysa veya her ne kadar eskiye göre daha ucuz olsa bile hala RAM fiyatlarının Disk fiyatlarına göre daha maliyetli olması gibi durumlar makinelere fiziksel olarak RAM eklenmesine mani olmaktadır.

SQL Server 2014 ile beraber tanıtılan Buffer Pool Extension özelliği,SSD() gibi veri erişim hızı yüksek olan fiziksel diklerimizi Buffer Pool olarak kullanma imkanı sağlamaktadır. Özellikle makinelerimize kısıtlamalardan ötürü RAM ekleyemediğimiz durumlarda, Buffer Pool boyutu artırarak performans kazanmamızı sağlamaktadır. Buffer Pool Extension özelliğinin en güzel yanlarından biri ise Buffer Pool olarak kullandığımız disk veya storage üzerinde herhangi bir sorun yaşanması durumunda özellik otomatik olarak disable ediliyor ve herhangi bir sorun çıkarmıyor.Ayrıca Buffer Pool Extension özelliğini aktif ettiğimizde kullandığımız Buffer Pool Extension alanında sadece clean page yani commit edilmiş dataları içeren page'ler bulunmaktadır bu sebeple herhangi bir veri kaybı da söz konusu olmayacaktır.

Buffer Pool Extension özelliğinin bir diğer avantajı, bu özelliğin konfigürasyonu ve kullanımının basit olması ve uygulama tarafında hiç bir değişlik gerektirmemesidir. Özelikle okuma işlemlerinin yoğun kullanıldığı durumlarda bu özelliğin aktif edilmesi uygulamamızın performansını artıracaktır.

SQL server 2014'e Buffer Pool Extension özelliği ile beraber bu özellik hakkında bize bilgi veren sys.dm_os_buffer_pool_extension_configuration adında bir tane DMV eklendi ve var olan sys.dm_os_buffer_descriptors DMV'ına da o an page'in Buffer Pool'da olup olmadığı bilgisini veren bir kolon eklendi.

Şimdi SQL server 2014'de Buffer Pool Extension özelliği kullanmadan önce bu özelliğin aktif olup olmadığını sys.dm_os_buffer_pool_extension_configuration adlı DMV'ımızı sorgulayarak kontrol edelim.

 

SELECT * FROM sys.dm_os_buffer_pool_extension_configuration

 

Yukarıdaki resimde gördüğümüz gibi Buffer Pool Extension özelliği şuan disable durumdadır. Bu özellik server seviyesinde bir özellik olduğu için bunu değiştirmek için ALTER Server Configuration komutunu aşağıdaki söz dizimi ile kullanmamız gerekiyor.

 

Yukarıdaki resimde gördüğü gibi ALTER Server Configuration komutunu Set Buffer Pool Extension parametresi ile kullandığımız on veya off yapabiliyoruz. Fakat burada seçeneği enable etmek için On kullandığımızda bizden ekstra olarak Fiziksel olarak Buffer Pool olaraka kullanılacak dosyanın yolu ve kilobayt, megabyte veya gigabyte cinsinden boyutunu belirtmemiz gerekiyor. Fakat dikkat etmemiz gerek nokta verdiğimiz boyutun makinemizin RAM miktarından daha fazla olması zorunluluğudur.

 

Şimdi aşağıdaki gibi Buffer Pool Extension özelliği enable etmeye çalışalım.

 

Yukarıdaki komutun çalışmasıyla aşağıdaki gibi bir hata alacağız.

 

Yukarıdaki hata bizi Buffer Pool Extension özelliği enable yapmak için belirlediğimiz Size parametresinin makine üzerindeki 32767 MB RAM’den daha büyük olması gerektiğini söylüyor. Şimdi kodumuzu aşağıdaki gibi değiştirip çalıştıralım.

 

Yukarıdaki kodumuzun başarılı bir şekilde çalıştığını gördükten sonra kullandığımız klasör içinde aşağıdaki gibi bir dosya oluşacaktır.

 

SQL Server 2014 üzerinde Buffer Pool Extension özelliğini kullanmak istemiyorsak yine Alter Server Configuration komutunu aşağıdaki gibi kullanarak bu özelliği Disable edebiliriz.

 

Yukarıdaki gibi Buffer Pool Extension özelliğini disable ettiğimizde az önce oluşturduğumuz bpe uzantılı dosya da otomatik olarak silinecektir.

 

Buffer Pool Extension özelliğini kullanırken bize faydalı olacak özelliklerden biri de var olan sys.dm_os_buffer_descriptors DMV’ına eklenen ve Page’in Buffer Pool’da olup olmadığı bilgisini tutan is_in_bpool_extension adlı bit bir kolondur.

 

Yukarıdaki gibi belli bir anda kullandığımız Buffer Pool Extension içinde ne kadar page olduğunu ve dolayısıyla bu değeri 8 KB ile çarparak toplamda ne kadar yer kapladığı bilgisine erişebiliriz. Bu değerin yüksek olması durumunda Buffer Pool Extension boyutunun büyütülmesini de seçenek olarak düşünebiliriz.

Yazıyı beğendiyeseniz sosyal medyada paylaşabilirsiniz.

Yazar Hakkında

Avatar
İsmail Adar

cialis generic kamagra gel cheap cialis uk levitra uk cialis generic kamagra gel kamagra 100mg cheap cialis uk cheap levitra uk cheap cialis kamagra 100mg cialis tadalafil kamagra oral jelly cialis buy viagra generic levitra uk kamagra gel cialis generic cheap levitra cheap viagra uk

Yorumlar

  1. Avatar
    Mesut

    25/03/2014

    Eline saglik Ismail hocam faydali bir makale olmus.

  2. Avatar
    Murat Bilgin

    25/03/2014

    Eline saglik Ismail:)

Yorum Yazın

.com

Bülten Üyeliği

Güncel eğitim ve etkinliklerden ilk haberdar olmak için ücretsiz abone olun.

Login

Login olmak için kullanıcı adınızı ve şifrenizi giriniz.

Şifremi Unuttum

×

Hızlı İletişim

Her konuda bana yazabilirsiniz. En kısa zamanda cevap vereceğim.

×