SQL PERFORMANCE & QUERY TUNING EĞİTİMİ
SQL performansıyla uğraşırken "yavaş" iddiası tahminle çözülmesin. İndex eklemek tüm sorguları yavaşlatmasın. Parameter sniffing rastgele plan değişimleriyle sürpriz yaratmasın. Bu eğitimin temel hedefi budur.
Aylarca trial-and-error ile elde edilen sezgi sistematik bir disipline kavuşur. Veritabanı geliştirici, DBA veya backend mühendisi olsun fark etmez. Her yavaş sorguyu sezgiyle tarama yerine execution plan ve wait stats üzerinden tespit edilir. Tuning kararı veriyle desteklenir, sonuçlar tutarlı kalır. Resmi dokümantasyon için Microsoft SQL Server Performance Center birincil kaynaktır.
Katılımcı Profili
"Sorgu yavaş" iddiasını rakamla destekleyip düzeltmek isteyen profillere yöneliktir:
- Backend Geliştiriciler: Uygulamanın veri katmanı maliyetini düşürür
- Veritabanı Yöneticileri (DBA): Üretim performansını tespit edip iyileştirir
- Veri Mühendisleri: ETL ve batch sorguların süresini kontrol altına alır
- BI / Raporlama Uzmanları: Karmaşık rapor sorgularını ölçeklenir hale getirir
- Performans Mühendisleri: Wait stats ve query store ile sistemik darboğaz bulur
Ön Gereklilikler
Eğitime hazır gelmek için aşağıdaki temellere sahip olmak önerilir:
- SELECT, JOIN ve subquery yazımına rahat hakimiyet
- Stored procedure ve fonksiyon kavramlarına aşinalık
- İlişkisel veritabanı temelleri (PK, FK, normalization)
- Bir DBMS (MS SQL Server, Oracle, PostgreSQL) ile pratik deneyim
- Execution plan görmüş olmak (zorunlu değil)
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, katılımcı grubunun uygunluğuna göre birlikte planlanır.
Kazanımlar
Eğitim sonunda performans iyileştirme süreci ölçülebilir bir disipline kavuşur:
- Execution plan'ı operatör seviyesinde okur ve darboğazı bulur
- Seek vs scan vs nested loop kararını veriyle alır
- Composite ve covering index tasarımı yapar
- Statistics ve histogram davranışını yorumlar
- Parameter sniffing'i tespit edip ele alır
- Wait stats ile sistemik sorunları sınıflandırır
- Query store ile regresyonları yakalar ve plan force eder
- Tempdb, lock ve deadlock kaynaklı yavaşlamayı tanır
SQL Performance & Query Tuning Eğitimi Konuları
1. Performans Mindset ve Sorgu Maliyet Modeli
- Logical reads, CPU time, elapsed time metrikleri
- I/O cost vs CPU cost yaklaşımı
- Estimated vs actual plan farkı
- Workload sınıflandırma (OLTP, OLAP, batch)
- Tuning sürecinin sistematiği
2. Execution Plan Okuma
- Operatör türleri: scan, seek, lookup, join
- Estimated rows vs actual rows
- Warning ikonları ve anlamları
- Cardinality estimator sürümleri
- Plan diff ile karşılaştırma
3. Index Tasarımı
- B-tree, bitmap, columnstore index
- Clustered vs non-clustered seçimi
- Composite index ve sütun sırası
- Covering index ve INCLUDE
- Filtered ve unique index
4. Statistics
- Auto create / auto update davranışı
- Histogram okuma
- Ascending key problem
- Statistics manual update stratejisi
- Sampling oranı kararı
5. Join Algoritmaları
- Nested loop join
- Merge join
- Hash join
- Hangi join hangi senaryoda
- Spool ve eager spool
6. Parameter Sniffing ve Plan Cache
- Sniffing nasıl oluşur
- OPTION (RECOMPILE) etkisi
- OPTIMIZE FOR ve OPTIMIZE FOR UNKNOWN
- Plan guide ve query store force plan
- Local variable workaround
7. Concurrency ve Locking
- Lock türleri (S, X, U, IS, IX, IU)
- Isolation level seçimi ve etkisi
- Deadlock yakalama (extended events, trace flag)
- Snapshot ve RCSI
- Blocking analizi
8. Wait Stats Analizi
- sys.dm_os_wait_stats okuma
- CXPACKET, PAGEIOLATCH, LCK_M_X
- Resource bottleneck sınıflandırma
- Wait stats ile bottom-up analiz
- Workload baselining
9. Tempdb ve Geçici Nesne Tuning
- Tempdb mimarisi ve dosya yapısı
- Allocation contention
- Temp table vs table variable
- In-memory OLTP giriş
- Spill warning yorumlama
10. Query Store ve Regresyon Yönetimi
- Query store etkinleştirme ve ayarlar
- Top resource consumer raporları
- Regressed query tespiti
- Plan force ve unforce
- Otomasyon ve dashboard kurma
SQL PERFORMANCE & QUERY TUNING EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları
Hangi veritabanı motoru üzerinden ilerleniyor?
Genel prensipler tüm motorlara uygulanabilir; örnekler ihtiyaca göre MS SQL Server, Oracle veya PostgreSQL üzerinde gösterilir. Wait stats, query store gibi motor-özel araçlar ilgili bölümde ayrı işlenir.
Execution plan okumayı hiç bilmiyorum, sıkıntı olur mu?
Hayır. Eğitim plan okumayı operatör operatör sıfırdan kurar. Estimated/actual karşılaştırması ve warning ikonları örneklerle pekiştirilir, dosya açma seviyesinden başlayan demolarla ilerlenir.
Index eklemek her zaman performansı artırır mı?
Hayır. Yanlış seçilen ve fazla index okuma sorgularını hızlandırabilirken yazma ve bakım maliyetini yükseltir. Eğitim, doğru index'i seçme ve mevcut index'leri kaldırma kararını veriyle desteklemeyi gösterir.
Wait stats konusu kapsamda mı?
Evet. sys.dm_os_wait_stats üzerinden top-wait analizi, baseline alma ve workload sınıflandırma uygulamalı işlenir. CPU, I/O, lock kaynaklı wait'ler ayrı senaryolarla pekiştirilir.
Eğitim içeriğini ihtiyaçlarımıza göre özelleştirebilir misiniz?
Evet. Eğitim öncesinde ihtiyaç analizi yaparak içerik ve örnekleri kurumun hedeflerine göre uyarlıyoruz. Modüller eklenebilir, bazı başlıklar derinleştirilebilir veya sadeleştirilebilir.
Eğitim yeri, yöntemi ve sertifikasyon süreci nasıl ilerliyor?
Eğitim online (canlı) veya yerinde gerçekleştirilebilir; tarih ve saatleri katılımcı grubunun uygunluğuna göre planlıyoruz. Program sonunda katılım sertifikası verilir; talep edilirse ölçme-değerlendirme ve raporlama eklenebilir.



