Buffer Pool ‘da Kayıtın Olup Olmadığını Öğrenme

Merhaba Arkadaşlar ,

Kayıdımızın Buffer Pool (Data Cache ) ‘da mı yoksa disk üzerinde mi yer alıyor bunu nasıl öğrenebiliriz sorusuna cevap arayacağız.

Önceki makalemizde bir kayıdın fiziksel konumunu bulmayı öğrenmiştik. Buradan yola çıkacak olur isek Undocumented olan {6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}{6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}phsyloc{6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}{6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9} komutunu kullanarak ilgili kayıdın PAGE_ID ‘sini buluyoruz.

select NAME, sys.fn_physlocformatter({6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}{6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}physloc{6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9}{6189a1005e4f6dc613b8beb03d694ce50f0902974162d6a7dea944a970422cc9})  FileId_PageId_SlotId
from dbo.MY_Test_Table Where MYID=1

Örneklerimiz bir önceki makalemizde oluşturduğumuz Test veritabanı ve tablosu üzerinden gerçekleşmektedir. Datanın Fiziksel Konumunu Nasıl Buluruz makalemize gitmek için TIKLAYIN…

PageId

 

Gördüğünüz üzere Page_Id değerine erişmiş bulunmaktayız. Bu işlemden sonra datamızın Buffer ‘da yer alıp almadığını aşağıda ki DMV yi kullanarak sorgulayalım.

SELECT * FROM sys.dm_os_buffer_descriptors WHERE page_id = 281 AND database_id = DB_ID()

Bu işlem sonucunda aşağıda ki gibi bir ekran gelmektedir.

BufferData

 

Eğer bu sorgulama sonucunda bir kayıt dönüyor ise ilgili kayıda ait PAGE Buffer ‘da yer alıyor demektir. Bu durum sonucunda o kayıt ile ilgili işlem yapılmak istendiğinde SQL Server disk üzerine gidip fiziksel I/O yapmak yerine Buffer ‘da bulunan veriye erişerek daha hızlı bir sonuç elde edileceğinden performans artışına sebebiyet vermiş olacaktır.

 

Leave a Reply

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