IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   MsSQL (https://www.ircforumlari.net/mssql/)
-   -   SQL Server 2014 Buffer Pool Extension (https://www.ircforumlari.net/mssql/657073-sql-server-2014-buffer-pool-extension.html)

SeckiN 03 Aralık 2014 15:54

SQL Server 2014 Buffer Pool Extension
 
Selamun Aleykum,

Bu yazımız içerisinde sizlere SQL Server 2014 ile gelen Buffer Pool Extension özelliğini anlatacağım. SQL Server 2014 öncesinde
herhangi bir sorgu çekildiğinde bu sorguya bağlı olan data ya da index pageleri diskten okunup SQL Server Buffer Pool’a yazılır ve daha sonraki kullanımlar için cache lenir. Bu durumda eğer daha sonra bu page tekrar kullanılmak istenirse SQL Server bu page’i disk yerine buffer pool dan getirerek performans artışı sağlamış olur.

Peki SQL Server 2014 beraber gelen Buffer Pool Extension özellği ne işe yarar ?

SSD gibi veri erişim hızı yüksek olan fiziksel disklermizin Buffer Pool olarak kullanılma imkanı sağlamaktadır. Buffer Pool Extension en önemli özelliklerinden biri disk veya storage tarafında yaşabilecek bir sorun halinde Buffer Pool Extension özelliğinin kendisini disable etmesidir. Ayrıca Buffer Pool Extension alanında sadece “clean page” yani “commit” edilmiş dataları içeren page’ler bulunmaktadır ve bu sebepten herhangi bir veri kaybı söz konusu olmayacaktır.

SQL Server 2014 öncesinde Buffer pool’a alınan her bir page’in incelenmesini ( hangi database ait, hangi objelere ait ) sağlamamıza yardımcı olması için sys.dm_os_buffer_descriptors DMV’si kullanılmaktadır. SQL Server 2014 Buffer pool extension configuration değerleri için sys.dm_os_buffer_pool_extension_configuration DMV’si , page incelenmesi için ise yine sys.dm_os_buffer_descriptors isimli DMV kullanılmaktadır. Yanlız SQL Server 2014 ile bu DMV üzerine is_in_bpool_extension isimli bir kolon eklenmiştir.

SQL Server 2014 öncesi ve sonrası Buffer Pool incelenmesi için ;

Select * from sys.dm_os_buffer_descriptors

SQL Server 2014 Buffer Pool Extension incelenmesi için ;

SELECT * FROM sys.dm_os_buffer_pool_extension_configuration - - Buffer Pool Extension Configuration DMV

Select * from sys.dm_os_buffer_descriptors –
SQL Server 2014 ile DMV üzerine dahil edilen is_in_bpool_extension adlı bir kolondur.

Konumuz gereği Buffer Pool Extension incelemelerine devam edelim.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Yukarıdaki resimden anlaşılacağı üzere Buffer Pool Extension özelliği Disable ( Kapalı ) durumdadır. Bu özellik Server seviyesinde bir özellik olmasından ötürü Alter Server Configuration komutu ile özelliğin Enable edilmesini sağlayacağız.

alter server CONFIGURATION
set BUFFER POOL EXTENSION ON
(FILENAME = ’C:\\\\\\\\BufferPoolExtension\\\\\\\\SQLServerBuf ferPool.BPE’,SIZE = 3 GB)

Yukarıdaki kod parçasını çalıştırdığımızda ise aşağıdaki gibir bir hata mesajı alabiliriz. Sebebi ise SQL Server’a tanımlanmış olan Max Memory değerinden büyük bir SIZE belirtilmesi gerekiyor.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Max Memory değerinden büyük bir SIZE bilgisi vererek tekrar aşağıdaki kod parçasını çalıştırıyoruz ve işlemin başarılı bir şekilde gerçekleştiğini görüyoruz.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

İşlem sonrasında ise;

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Aşağıdaki Kod parçası ile oluşturduğumuz Buffer Pool Extension özelliğini disable ettiğimizde ise var olan bpe uzantılı dosyanın olmadığını görebiliriz.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

İşlem Sonrasında ise ;

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Buffer Pool Extension özelliğini tekrar enabled edip DMV üzerinden kolonların incelemesini yapalım.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

database_id : Page in ilişkili olduğu database in ID si

file_id : Page in ilişkili olduğu database in file ID si

page_id : File ın içindeki page in ID si

page_level : Page in Index levelı

allocation_unit_id : Bu kolonu sys.allocation_units DMV sine join için kullanacaız.

row_count : Page de bulunan kayıt sayısı

free_space_in_bytes : Bytes cinsinden Page in dolu olan kısmı. Bu arada Page in toplam boyutu 8192 byte dır. Bunuda not olarak düşelim. Daha sonra bu değeri MB hesabında kullanacağız.

is_modified : Eğer 1 ise page disk ten okunduktan sonra değiştirilmiş olduğu manasına gelir.

is_in_bpool_extension : Buffer Pool Extension özelliğinin kullanıldığı page bilgisini gösterir. 8 KB ile çarparak toplamda ne kadar yer kapladığı bilgisine de erişebiliriz.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:19.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net