Performans ve İndeksleme

SQL Server Performans Ayarları Nasıl Yapılandırılır?

Bellek, paralellik ve tempdb ayarlarını değiştirmeden önce sorgu yükünü ve kaynak kullanımını ölçün. Ardından tek bir ayarı değiştirip aynı iş yükünde sonuçları karşılaştırın.

Veri Tabanım Editörlüğü · 6 dk okuma
Bu yazıda neler var?
  1. Gerekli erişimleri ve ölçüm araçlarını hazırlayın
  2. Değişikliklerden önce performans temelini ölçün
  3. Darboğazın kaynağını sorgu ve beklemelerle bulun
  4. Bellek, paralellik ve tempdb ayarlarını iş yüküne göre seçin
  5. Ayarları adım adım değiştirip test edin
  6. Sık yapılan hataları önleyin
  7. Performans kötüleşirse ne yapın?

SQL Server performans ayarlarını, önce CPU, disk G/Ç, ağ ve sorgu ölçümlerini alıp sonra darboğaza göre düzenleyin. Süre, temsilî iş yükünü ölçmek ve değişiklikleri yeniden test etmek için gereken aralığa bağlıdır; sabit bir dakika sayısı verilemez. İşlem orta-ileri düzey deneyim, yönetici erişimi ve üretime benzeyen bir test ortamı gerektirir.

Gerekli erişimleri ve ölçüm araçlarını hazırlayın

SQL Server yapılandırmasını değiştirmek için uygun yönetici yetkilerine, izleme araçlarına ve temsilî sorgulara ihtiyacınız var. Üretim sisteminde çalışıyorsanız bakım penceresini ve geri dönüş planını önceden belirleyin. SQL Server'ın kapsamını ve bileşenlerini bilmiyorsanız SQL Server'ın kullanım alanları rehberine bakın.

  • CPU kullanımı, disk G/Ç, ağ trafiği ve bellek ölçümlerini görebileceğiniz bir izleme aracı.
  • Bekleme istatistikleri, yürütme planları ve en çok kaynak tüketen sorgulara erişim.
  • Query Store'un etkin olduğu veritabanları veya sorgu performansını karşılaştırabileceğiniz kayıtlar.
  • Ayarların mevcut değerleri, değişiklik tarihi ve geri dönüş değerlerini içeren bir kayıt.

İş yükünü temsil eden sorguları yoğun ve sakin dönemlerden seçin. Aynı sorguları, aynı parametrelerle ve benzer veri hacminde çalıştırın. Böylece ayar değişikliğinin etkisini uygulama trafiğindeki doğal farklılıklardan ayırabilirsiniz.

Değişikliklerden önce performans temelini ölçün

Önce mevcut yapılandırmayı ve kaynak kullanımını kaydedin. CPU, disk G/Ç ve ağ trafiğini yalnızca tek bir anlık görüntüyle değerlendirmeyin; yoğun saatlerdeki eğilimleri de izleyin. Bir sorgu yavaşladığında bekleme istatistiklerini ve yürütme planını inceleyin. Bu veriler, işlemcinin mi, depolamanın mı yoksa sorgunun mu darboğaz oluşturduğunu gösterir.

Query Store, sorgu metni, plan ve çalışma zamanı istatistiklerini geçmişe dönük karşılaştırmaya yardımcı olur. Yavaşlama başlamadan önceki ve sonraki planları inceleyin. En yüksek kaynak tüketen sorguları, toplam çalışma süresi ve yürütme sıklığıyla birlikte sıralayın. Böylece tek bir uzun sorguyla sık çalışan pahalı sorguyu birbirinden ayırabilirsiniz.

İpucu: Değişiklik öncesi ve sonrası ölçümleri aynı zaman aralığında, aynı sorgu kümesiyle karşılaştırın. Bir seferde tek yapılandırma değerini değiştirin.

Darboğazın kaynağını sorgu ve beklemelerle bulun

CPU yüksekliği tek başına işlemciyi artırmanız gerektiğini göstermez. Yürütme planında taramalar, pahalı sıralamalar ve paralel işlemler olup olmadığını kontrol edin. Disk beklemeleri öne çıkıyorsa veri, işlem günlüğü ve yedekleme dosyalarının G/Ç davranışını ayrı ayrı izleyin. Ağ trafiğini de uygulama sunucularıyla veri tabanı arasındaki yükü anlamak için değerlendirin.

İndeks önerilerini gerçek sorgu yüküyle doğrulayın. Eksik indeksler taramaları artırabilir; kullanılmayan veya benzer indeksler ise INSERT, UPDATE ve DELETE işlemlerine ek yük getirir. İstatistiklerin güncelliğini de inceleyin. Bayat istatistikler, sorgu iyileştiricinin uygun olmayan bir yürütme planı seçmesine yol açabilir.

Performans incelemesinde veri tabanı normalizasyonunu da sorgu tasarımı bağlamında değerlendirebilirsiniz. Normalizasyon kararlarını tek başına hız ayarı saymayın; sorgu planı ve iş yüküyle birlikte ölçün. Her değişikliğin etkisini aynı ölçüm kümesinde kaydedin.

Bellek, paralellik ve tempdb ayarlarını iş yüküne göre seçin

Aşağıdaki ayarlar için bütün SQL Server kurulumlarına uyan tek bir değer yoktur. Sunucu donanımı, diğer çalışan servisler ve sorgu türleri kararınızı etkiler. Ayarları, ölçümlerin işaret ettiği darboğaza göre inceleyin ve her değişikliği ayrı test edin.

AyarNe zaman incelemeli?Uygulama yaklaşımı
max server memorySQL Server ile işletim sistemi veya diğer servisler bellek için yarışıyorsa.SQL Server dışındaki süreçlerin ve işletim sisteminin ihtiyaç duyduğu belleği hesaba katın; sabit bir genel değer kullanmayın.
MAXDOP ve cost threshold for parallelismYürütme planlarında paralellik ve CPU kullanımı sorun oluşturuyorsa.Sorgu planlarını, CPU yükünü ve bekleme istatistiklerini inceleyin; bir değeri değiştirip sonuçları yeniden ölçün.
tempdbSıralama, geçici tablolar veya benzeri işlemler tempdb beklemelerine yol açıyorsa.Kullanımı izleyin. Başlangıç önerisi olarak 4–8 eşit boyutlu veri dosyası değerlendirilebilir; sayıyı ölçümle doğrulayın.
İndeksler ve istatistiklerSorgu planlarında geniş taramalar veya uygunsuz tahminler görülüyorsa.Önerileri gerçek sorgularla sınayın; istatistik güncelleme yöntemini veri hacmine ve iş yüküne göre belirleyin.

max server memory sınırını belirlerken SQL Server dışındaki uygulamaların bellek ihtiyacını da hesaba katın. Paralellik ayarlarında yalnızca bir sorgunun planına bakmayın; eşzamanlı sorguların toplam CPU etkisini değerlendirin. tempdb veri dosyası sayısını otomatik artırmak yerine kullanım ve bekleme ölçümlerini izleyin.

Ayarları adım adım değiştirip test edin

Değişiklikleri kontrollü bir sırayla uygulayın. Önce mevcut değerleri ve ölçüm sonuçlarını kaydedin; ardından ilgili ayarı değiştirin. Test ortamında sonuçları doğrulamadan aynı değişikliği üretime taşımayın. Bu süreç, ayarın etkisini görmenizi ve sorun çıktığında önceki değere dönmenizi sağlar.

  1. Temel ölçümleri kaydedin. CPU, disk G/Ç, ağ, beklemeler, sorgu süreleri ve yürütme planlarını alın.
  2. En pahalı sorguları seçin. Query Store geçmişini ve kaynak tüketimini kullanarak temsilî bir sorgu kümesi oluşturun.
  3. Tek bir darboğaza odaklanın. Bellek, paralellik, tempdb, indeks veya istatistiklerden ölçümle ilişkili olanı seçin.
  4. Bir ayarı değiştirin. Önceki değeri ve yeni değeri kaydedin; eş zamanlı başka yapılandırma değişikliği yapmayın.
  5. Aynı iş yükünü yeniden çalıştırın. Sorgu süresi, kaynak kullanımı ve bekleme istatistiklerini başlangıç ölçümüyle karşılaştırın.
  6. Etkiyi kaydedip karar verin. İyileşme yoksa veya gerileme varsa önceki değere dönün; sonraki değişikliği ayrı bir testte deneyin.

SQL Server ayarlarını sunucu düzeyinde veya veri tabanı düzeyinde yönetebilirsiniz. Örneğin max server memory ve MAXDOP sunucu yapılandırma seçenekleridir; bazı ayarlar ise veri tabanı kapsamında uygulanır. Kullandığınız seçeneğin kapsamını kontrol edin ve yapılandırma değişikliğini uygun yönetici yetkisiyle yapın.

Sık yapılan hataları önleyin

Ölçüm almadan donanım satın almak veya rastgele yapılandırma değerleri denemek, darboğazı çözmeyebilir. Bir değişiklikten sonra aynı iş yükünü çalıştırmamak da sonucu karşılaştırmayı imkânsız kılar. Aşağıdaki hataları kontrol ederek denemeyi ölçülebilir tutun.

  • Tek anlık ölçüme güvenmek: Yoğun ve sakin dönemlerde CPU, disk G/Ç ve ağ eğilimlerini de kaydedin.
  • Otomatik indeks önerisini doğrudan uygulamak: Öneriyi sorgu planı ve INSERT, UPDATE, DELETE yüküyle sınayın.
  • Sunucu belleğinin tamamını SQL Server'a ayırmak: İşletim sistemi ve diğer servisler için gereken belleği hesaba katın.
  • tempdb dosya sayısını her sunucuda aynı seçmek: Beklemeleri ve kullanım biçimini ölçün; 4–8 dosyayı kesin kural saymayın.
  • Birden fazla ayarı birlikte değiştirmek: Tek değişkeni test edin; aksi durumda hangi ayarın sonucu etkilediğini ayıramazsınız.

Performans kötüleşirse ne yapın?

Önce değişiklikten sonra hangi göstergenin bozulduğunu bulun. Sorgu süreleri arttıysa Query Store'da plan değişikliğini; CPU yükseldiyse paralellik ve en çok kaynak tüketen sorguları inceleyin. Disk beklemeleri arttıysa veri, günlük ve yedekleme dosyalarının G/Ç ölçümlerini karşılaştırın. Sorunu tek bir göstergeye bakarak sınıflandırmayın.

Yalnızca değiştirdiğiniz ayarı önceki değerine döndürün ve aynı sorgu kümesini tekrar çalıştırın. Performans başlangıç düzeyine dönüyorsa değişikliğin etkisini kayıt altına alın. Dönmüyorsa, eş zamanlı iş yükünü ve yeni yürütme planlarını inceleyin. İndeks veya istatistik değişikliği yaptıysanız bunları da değişiklik kaydında belirtin.

Ölçüm, darboğazı giderme ve yeniden ölçüm döngüsünü sürdürün. Microsoft, anlık değerlerle birlikte zaman içindeki eğilimleri izlemeyi; CPU, disk G/Ç ve ağ trafiğini değerlendirmeyi önerir. SQL Server için bellek sınırı, tempdb dosya sayısı veya indeks bakım eşiği belirleyen evrensel bir reçete yoktur.

Sık sorulan sorular

MAXDOP için doğru değer nasıl belirlenir?
Tek bir MAXDOP değeri bütün sunucular ve sorgular için uygun değildir. Paralel yürütme planlarını, CPU kullanımını ve bekleme istatistiklerini inceleyin. Temsilî sorgularda mevcut değeri ölçün, tek bir yeni değer deneyin ve aynı iş yükünde sonuçları karşılaştırın. Üretim değişikliğinden önce test ortamında doğrulama yapın.
SQL Server performans ayarlarını değiştirmek için sunucuyu yeniden başlatmak gerekir mi?
Gereklilik, değiştirdiğiniz ayara ve SQL Server sürümüne göre belirlenir. Ayarın yönetim arayüzündeki uygulama bilgisini kontrol edin ve değişiklik öncesinde mevcut değeri kaydedin. Yeniden başlatma gerekiyorsa bakım planına ekleyin; ardından aynı sorgu ve kaynak ölçümlerini tekrarlayın.
tempdb veri dosyalarını ne zaman artırmalıyım?
Dosya sayısını yalnızca mevcut sayı düşük göründüğü için artırmayın. tempdb kullanımını, sıralama ve geçici tablo yükünü, ayrıca ilgili beklemeleri inceleyin. Artış kararı verirseniz eşit boyutlu veri dosyalarını test ortamında deneyin. 4–8 dosyalık başlangıç önerisini her sunucuya uygulanacak kesin bir kural saymayın.
Ayar değişikliğinden sonra performans düşerse ne yapmalıyım?
Önce değişiklik kaydındaki son yapılandırma değerini geri alın. Ardından aynı sorguları ve benzer yükü kullanarak ölçümü tekrarlayın. Başlangıç performansı dönmezse Query Store planlarını, bekleme istatistiklerini ve eş zamanlı iş yükünü inceleyin. Bir sonraki değişikliği önceki sorun ayrıştırıldıktan sonra test edin.

Kaynaklar

  1. Performans İzleme ve Ayarlama - SQL Server | Microsoft Learn
  2. SQL Veritabanı Performansı Nasıl Artırılır? 10 Yol | ÇAP Teknoloji