MSSQL Bellek Yapılandırma Aracı

SQL Server RAM miktarı, sürüm ve iş yüküne göre max server memory ve diğer bellek ayarlarını hesaplar. T-SQL sorguları olarak kopyalamaya hazır yapılandırma üretir.

📋 Mevcut bellek durumunu öğrenmek için bu sorguları çalıştırın
-- Mevcut max server memory ayarı SELECT name, value_in_use FROM sys.configurations WHERE name = 'max server memory (MB)'; -- Anlık bellek kullanımı SELECT physical_memory_in_use_kb/1024 AS memory_mb, page_fault_count FROM sys.dm_os_process_memory; -- Buffer pool kullanımı SELECT counter_name, cntr_value FROM sys.dm_os_performance_counters WHERE counter_name IN ('Total Server Memory (KB)','Target Server Memory (KB)');
Toplam fiziksel RAM öğrenmek için: SELECT physical_memory_kb/1024 AS ram_mb FROM sys.dm_os_sys_info;
Sunucu Bilgileri
MB

Sunucunun fiziksel RAM miktarı.

Express max 1410 MB ile sınırlıdır.

Kullanım Senaryosu

OS ve diğer servisler için ne kadar RAM bırakılacağını belirler.

Gelişmiş Ayarlar
core

Max Degree of Parallelism hesabı için.

Genellikle CPU sayısı veya max 8.

Hesaplama Sonuçları

max server memory
MB
min server memory
MB
OS için ayrılan
MB
Max DOP
paralellik derecesi
Cost Threshold
parallelism için
Tempdb Dosyası
adet
Tempdb Boyutu
MB (dosya başına)
Optimize For
ad hoc workloads
T-SQL — SQL Server Management Studio’da çalıştırın

    

SQL Server Bellek Yönetimi Rehberi

SQL Server varsayılan olarak mevcut tüm RAM’i kullanmaya çalışır. max server memory ayarlanmazsa OS ve diğer servisler için yeterli RAM kalmayabilir, bu da ciddi performans sorunlarına yol açar. En kritik yapılandırma adımı budur.

OS için Ayrılacak Minimum RAM (Microsoft Önerisi)

RAM 0–4 GB       → OS için 1 GB bırak
RAM 4–16 GB      → OS için toplam RAM'in %10'u
RAM 16–64 GB     → OS için 4 GB + her 4 GB RAM için +1 GB
RAM 64 GB üzeri  → OS için 10 GB + her 8 GB RAM için +1 GB
SSRS çalışıyorsa → +2–4 GB ekstra
SSIS çalışıyorsa → +1–2 GB ekstra
max server memory = Toplam RAM - OS payı - diğer servis payı
Temel Kavramlar
🧠

max server memory

SQL Server’ın Buffer Pool için kullanabileceği maksimum RAM miktarı. Bu değer mutlaka ayarlanmalıdır — varsayılan değer 2.147.483.647 MB’dir (sınırsız). SSRS, SSIS gibi ek bileşenler bu limitin dışında RAM kullanır.

Max Degree of Parallelism (MAXDOP)

Tek bir sorgunun kaç CPU çekirdeği kullanabileceğini belirler. OLTP için genellikle düşük (1–4), OLAP için daha yüksek tutulur. NUMA node başına çekirdek sayısını geçmemeli.

💰

Cost Threshold for Parallelism

Sorgunun paralel çalışmaya geçmesi için gereken maliyet eşiği. Varsayılan 5 çok düşüktür — çoğu ortamda 25–50 arası daha iyi sonuç verir. Yüksek değer küçük sorguların paralel çalışmasını engeller.

📁

Tempdb Optimizasyonu

Tempdb contentionunu azaltmak için dosya sayısı CPU çekirdek sayısına eşit tutulur (maksimum 8). Her dosya aynı boyutta ve aynı büyüme ayarlarında olmalı. SQL Server 2016+ kurulumda otomatik yapılandırılır.

Parametre Referansı
ParametreAçıklamaVarsayılan
max server memoryBuffer pool için maksimum RAM. Mutlaka ayarlanmalı.2.147.483.647 (sınırsız)
min server memorySQL Server’ın bırakmayacağı minimum RAM miktarı.0
max degree of parallelismSorgu başına maksimum paralel thread sayısı.0 (sınırsız)
cost threshold for parallelismParalel plana geçiş için sorgu maliyet eşiği.5
optimize for ad hoc workloadsİlk çalıştırmada plan cache’e tam plan yerine stub yazar. Bellek tasarrufu sağlar.0 (kapalı)
lightweight poolingFiber mode — genellikle önerilmez, kapalı kalmalı.0 (kapalı)
tempdb dosya sayısıContention azaltmak için. CPU sayısı veya max 8.1
İzleme Sorguları
-- Bellek baskısı var mı? SELECT * FROM sys.dm_os_ring_buffers WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'; -- Plan cache kullanımı SELECT SUM(size_in_bytes)/1024/1024 AS cache_mb, type FROM sys.dm_exec_cached_plans GROUP BY type; -- PLE (Page Life Expectancy) — 300 saniyenin altına düşmemeli SELECT cntr_value AS ple FROM sys.dm_os_performance_counters WHERE counter_name = 'Page life expectancy';
⚠ Express Edition Limiti SQL Server Express, Buffer Pool için maksimum 1.410 MB (1,4 GB) RAM kullanabilir. Bu limit donanımdan bağımsızdır ve aşılamaz. Daha fazla RAM gerekiyorsa Standard veya Developer edition kullanın.
💡 Değişiklikleri Uygulama max server memory ve min server memory değişiklikleri SQL Server yeniden başlatılmadan anında uygulanır. MAXDOP ve Cost Threshold da yeniden başlatma gerektirmez. Tempdb dosya değişiklikleri için servis yeniden başlatması gerekir.