Uzmanlık

SQL Server Uzmanı

SQL Server, özellikle .NET ve Windows ekosistemindeki kurumsal uygulamaların yaygın veritabanı. T-SQL, şema tasarımı, sorgu performansı, yedekleme ve yüksek erişilebilirlik konularında uygulamalı deneyimim var; .NET tarafındaki veri erişimiyle birlikte uçtan uca bakabiliyorum.

SQL Server uzmanı ne iş yapar?

SQL Server kurulumları genellikle .NET uygulamalarıyla birlikte büyür. Bu yüzden veritabanı sorunlarını uygulamadan bağımsız düşünmek yanıltıcı olur. Şema ve T-SQL tarafını, Entity Framework veya Dapper gibi veri erişim katmanlarıyla birlikte değerlendiriyorum. Böylece yavaşlığın veritabanından mı, sorgu üretiminden mi kaynaklandığı net görülür.

  • Şema: Normalizasyon, anahtarlar, kısıtlar, dosya grubu ve büyüme planı.
  • T-SQL: Saklı yordamlar, fonksiyonlar, işlem yönetimi ve hata yakalama.
  • Performans: Çalışma planları, indeksler, istatistikler ve parametre koklama.
  • Operasyon: Yedekleme, Always On, izleme ve yükseltme.

Performans iyileştirme

SQL Server'da yavaş sorguların nedenleri çoğu zaman eksik veya yanlış indeks, güncel olmayan istatistikler ve uygulama tarafında üretilen sorgu desenleridir. Ölçümle başlıyorum: gerçek çalışma planları, bekleme istatistikleri ve en pahalı sorgular. Ardından hedefli düzeltmeler yapıyorum:

  • Kapsayıcı (covering) indeksler ve gereksiz indekslerin temizlenmesi.
  • Sorguların daha az veri okuyacak şekilde yeniden yazılması.
  • İstatistiklerin ve bakım planlarının düzenlenmesi.
  • Uygulama tarafında N+1 ve aşırı veri çekme sorunlarının giderilmesi.

Parametre koklama gibi daha ince konular, gerçekten sorun oluşturuyorsa ve ölçümle doğrulanıyorsa ele alınır; varsayılan olarak karmaşık ayarlara dokunmam.

Yedekleme ve yüksek erişilebilirlik

Tam, fark ve işlem günlüğü yedekleri kurtarma hedeflerine göre planlanır. Yedeklerin ayrı konumda tutulması ve geri yükleme testi yapılması şart. Kesintisizlik gerekiyorsa Always On veya benzeri yapılar değerlendirilir; ancak yük devretme senaryosu test edilmeden canlıya güvenilmez.

Güvenlik

Uygulama hesapları ile yönetim hesapları ayrılır, en az yetki ilkesi uygulanır. Hassas verilerde maskeleme ve denetim değerlendirilir. Bağlantı dizelerindeki sırların kaynak kodda tutulmaması, .NET tarafındaki yapılandırma yönetimiyle birlikte ele alınır.

.NET entegrasyonu

Entity Framework Core veya Dapper kullanılan projelerde migration stratejisi, sorgu üretimi ve işlem yönetimi birlikte planlanmalı. Veritabanı şemasını yalnızca ORM'e bırakmak yerine kritik noktalarda kontrollü SQL kullanmak, performans ve öngörülebilirlik sağlar. Bu iki katmanı birlikte değerlendirebildiğim için sorunun kaynağını daha hızlı buluyorum.

Sık sorulan sorular

SQL Server lisansı maliyetli, alternatif ne?

Kullanım senaryosuna göre PostgreSQL değerlendirilebilir. Ancak mevcut .NET entegrasyonu, raporlama ve ekip bilgisi varsa geçiş maliyeti hesaba katılmalı. Karar toplam sahip olma maliyetiyle verilmeli.

Entity Framework ile SQL Server yeterince hızlı mı?

Doğru kullanıldığında evet. N+1, gereksiz tracking ve büyük veri çekimi performansı düşürür. Kritik sorgularda projeksiyon veya kontrollü SQL kullanılır.

Yavaş sorguları nasıl buluyorsunuz?

Çalışma planları, bekleme istatistikleri ve en pahalı sorgular incelenir. Uygulama tarafında hangi isteğin hangi sorguları ürettiği de takip edilir.

Yedekleme stratejisi nasıl olmalı?

Kabul edilebilir veri kaybı ve kesinti süresine göre tam, fark ve log yedekleri planlanır. Geri yükleme testi yapılmayan yedek güvenilir sayılmaz.

Always On şart mı?

Kesintisizlik gerektiren kritik sistemlerde değerlendirilir; her proje için gerekli değildir. Maliyet, karmaşıklık ve gerçek ihtiyaç birlikte tartılmalı.

SQL Server'dan PostgreSQL'e geçiş yapılır mı?

Evet, ancak T-SQL karşılıkları, veri tipleri, uygulama bağlantıları ve raporlama test edilmeli. Aşamalı geçiş ve geri dönüş planı önerilir.