COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
48/ 65

İndeksler ve performans

SARGability ve örtük dönüşüm

Filtreyi indeksin kullanabileceği biçimde yaz.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

SARGable koşul bir erişim yolunun arama sınırlarını kullanmasına elverişlidir. WHERE YEAR(OrderDate) = 2026 yerine başlangıç ve bitiş sınırı yazmak genellikle daha uygun bir desendir. Bu tek başına seek garantisi değildir: istatistik, seçicilik ve maliyet kararı devam eder.

Sütun üzerinde fonksiyon veya veri tipi dönüşümü kullanmak bazı erişim olanaklarını azaltır. Parametre-sütun tip uyumsuzluğu implicit conversion doğurabilir; dönüşümün hangi tarafta oluştuğu önemlidir. LIKE N'abc%' bazı koşullarda arama aralığına dönüşebilir; N'%abc%' normal B-tree ile aynı avantajı genellikle sağlamaz. Dil, collation ve iş kuralı doğruluğunu performans uğruna bozma.

NERESİNDE KULLANIRSIN?

Filtreleri doğru ve ölçülebilir hale getirmek için.

SIK YAPILAN HATA

Sadece fonksiyonu kaldırınca sorgunun kesin hızlanacağını söylemek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT OrderId FROM lab.SalesOrder WHERE OrderDate >= '20260101' AND OrderDate < '20270101';

Yıl aralığı sütunu değiştirmeden sınırlar.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

Şubat siparişlerini YEAR/MONTH kullanmadan filtrele.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT OrderId FROM lab.SalesOrder WHERE OrderDate >= '20260201' AND OrderDate < '20260301';

103, 104 ve 105 döner; 1 Mart dışarıda kalır.