Veritabanı yöneticileri (DBA) için bir SQL Server’ın performansını izlerken yanıtlanması gereken ilk soru şudur: “Sunucuda ne kadar RAM var ve SQL Server bunun ne kadarını tüketiyor?” Bu soruların yanıtı, SQL Server’ın dahili bellek yönetimi ile işletim sisteminin (OS) kaynak dağılımı arasındaki dengeyi anlamaktan geçer.
Aşağıdaki iki script, bu dengeyi hem uygulama (SQL Server) hem de altyapı (Windows Server) perspektifinden analiz etmemize olanak tanır.
1. SQL Server Bellek Tüketim Oranı
Aşağıdaki script, SQL Server’ın fiziksel belleği ne kadar efektif kullandığını ve sunucudaki toplam RAM miktarının yüzde kaçına sahip olduğunu gösterir. sys.dm_os_sys_info üzerinden toplam fiziksel kapasiteyi, sys.dm_os_process_memory üzerinden ise o anki SQL Server kullanımını çeker.
SELECT
sys.dm_os_sys_info.physical_memory_kb / 1024 AS [OS RAM / Physical Memory (MB)],
sys.dm_os_process_memory.physical_memory_in_use_kb / 1024 AS [Physical Memory SQL Using (MB)],
FORMAT((
CONVERT(NUMERIC, sys.dm_os_process_memory.physical_memory_in_use_kb) /
CONVERT(NUMERIC, sys.dm_os_sys_info.physical_memory_kb)
), 'P', 'en-us') AS [Percentage of Physical Memory SQL Using]
FROM
sys.dm_os_sys_info,
sys.dm_os_process_memory;

Eğer bu sorgu sonucunda SQL Server’ın kullanımı düşük görünüyorsa, “Max Server Memory” ayarlarınız veya sunucu genelindeki yük dağılımı tekrar gözden geçirilmelidir.
2. İşletim Sistemi Bellek Sağlık Durumu
SQL Server tek başına bir ada değildir; üzerinde çalıştığı işletim sisteminin sağlığına bağlıdır. sys.dm_os_sys_memory DMV’sini kullanan bu script, sunucunun genel bellek durumunu ve sanal bellek (Page File) kullanımını detaylandırır.
SELECT
total_physical_memory_kb / 1024 AS total_physical_memory_mb,
available_physical_memory_kb / 1024 AS available_physical_memory_mb,
total_page_file_kb / 1024 AS total_page_file_mb,
available_page_file_kb / 1024 AS available_page_file_mb,
100 - (100 * CAST(available_physical_memory_kb AS DECIMAL(18,3)) / CAST(total_physical_memory_kb AS DECIMAL(18,3))) AS 'Percentage_Used',
system_memory_state_desc
FROM sys.dm_os_sys_memory;

Sütun Açıklamaları:
- total_physical_memory_mb: Sunucuda takılı olan toplam fiziksel RAM.
- available_physical_memory_mb: İşletim sisteminde o an boşta olan ve tahsis edilebilir RAM miktarı.
- total_page_file_mb: Windows tarafından kullanılan disk üzerindeki sanal bellek (Page File) boyutu.
- Percentage_Used: Sunucu genelindeki fiziksel bellek doluluk oranı.
- system_memory_state_desc: En kritik alandır. Buradaki “Available physical memory is high” ifadesi sistemin rahat olduğunu, “Physical memory usage is steady” stabil olduğunu gösterir. Eğer burada bir dar boğaz varsa uyarı mesajları dönecektir.
Bu iki scripti düzenli olarak çalıştırmak, SQL Server’ın “bellek açlığı” çekip çekmediğini veya işletim sistemi seviyesinde bir bellek baskısı (Memory Pressure) olup olmadığını hızlıca teşhis etmenizi sağlar. Özellikle yüksek boyutlu veritabanlarında, Page File kullanımının artması performans düşüşünün habercisidir.
Başka makalede görüşmek dileğiyle..
“Şüphesiz, Rabbin sana verecek ve sen de hoşnut olacaksın.”. Duha Süresi-5 Ayet
