Performans & Optimizasyon
SQL Server üzerinde best practice olarak ayarlamamız gereken ayarları zaman zaman paylaşacağım ilk olarak yeni kurduğumuz bir SQL Server sunucusunda yapmamız gereken ayarlardan bahsediyor olacağım.
SQL Server konfigurasyonları içerisinde kritik olan “Server Properties” ekranından ve “sp_configure” den ayarlayabileceğimiz ayarlar aşağıda.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | USE masterGO-- Öncelikle advanced options'ları açıyoruzEXEC sp_configure 'show advanced options', 1;GORECONFIGURE WITH OVERRIDE;GO-- Gerekli ayarları kontrol ediyoruzSELECT name, value, value_in_use, [description]FROM sys.configurationsWHERE name IN('backup compression default', -- 1 yapılmalı özellikle Backup süreleri ve storage den kazanç çok yüksek'clr enabled', -- clr enabled (only enable if it is needed)'Database Mail XPs', -- SQL üzerinden mail atıyorsak 1 yapılmalı'max degree of parallelism', -- OLTP sunucularında 1 yapılmalı.'max server memory (MB)', -- SQL Server RAM sever :) bu yüzden uygun ayarları OS a göre ayarlamak gerekir'min server memory (MB)', -- RAM optimizasyonu geniş bir konudur; min değerini ayarlamak yararlı demek tam doğru olamıyor analiz etmeden verilen bir değer OS çökmesine sebep olabilir.'optimize for ad hoc workloads', -- AdHoc query kullanan yerler ve Memory kısıtlı olan yerlerde "1"'xp_cmdshell' -- özellikle "0" olmalı sistem tarafında büyük bir açık oluşturuyor.)ORDER BY name |
Mevcut ayarlarımızı gördük artık ayarlamamız gereken değerler kaldı.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | USE masterGOsp_configure 'show advanced options', 1;GORECONFIGURE WITH OVERRIDE;;GOEXEC sys.sp_configure N'backup compression default', N'1'GORECONFIGURE WITH OVERRIDEGOsp_configure 'max server memory', 20000; -- RAM miktarını kontrol ederek yapmamız gerektiğini unutmayalım.GORECONFIGURE WITH OVERRIDE;GOsp_configure 'min server memory', 0;GORECONFIGURE WITH OVERRIDE;GOsp_configure 'clr enabled', 1;GORECONFIGURE WITH OVERRIDE;GOsp_configure 'max degree of parallelism', 1;GORECONFIGURE WITH OVERRIDE;GOsp_configure 'optimize for ad hoc workloads', 1;GORECONFIGURE WITH OVERRIDE;GO-- xp_cmdshell configureEXEC sys.sp_configure N'xp_cmdshell',N'0' -- yazılımı ekibinin kullandığı program olabilir !!!!!! sorup yapılmalıGORECONFIGURE WITH OVERRIDEGOsp_configure 'show advanced options', 0;GORECONFIGURE WITH OVERRIDE;;GO |
RAM ayarları ne olacak diye soracak olursanız; ideal oranları tam vermek mümkün olmasa da yaklaşık alttaki değerleri ayarlıyorum bununla birlikte altta verdiğim değerler 64 bit (x64) işletim sistemleri için ve SADECE sunucuda SQL Server çalışıyorsa geçerlidir.

| Physical RAM | MaxServerMem Setting |
|---|---|
| 2GB | 1500 |
| 4GB | 3200 |
| 6GB | 4800 |
| 8GB | 6400 |
| 12GB | 10000 |
| 16GB | 13500 |
| 24GB | 21500 |
| 32GB | 29000 |
| 48GB | 44000 |
| 64GB | 60000 |
| 72GB | 68000 |
| 96GB | 92000 |
| 128GB | 124000 |

Bir yazımızın daha sonuna geldik. OS’e RAM bırakmanız gerektiğini unutmayın performansınızın düşmemesi dileğiyle :):)
