Mert Özen Her Satırda Daha İleri
Anasayfa Videolar SQL: DISTINCT, TOP, OFFSET-FETCH
SQL (Structured Query Language)

SQL: DISTINCT, TOP, OFFSET-FETCH

27 Eyl 2026 04:48
YouTube'da izle
Açıklama

Bu video, SQL'de veri filtreleme ve sayfalamada kullanılan DISTINCT, TOP ve OFFSET-FETCH komutlarının çalışma mantıklarını ve performans üzerindeki etkilerini açıklamaktadır (0:01-4:37).

Öne çıkan başlıklar:

  • DISTINCT Kullanımı (0:17-1:15): DISTINCT sadece bir eşlik karşılaştırması değil, bir gruplama işlemidir. Bu nedenle NULL değerleri birbirine eşit olmasa da gruplandırarak tek satıra indirir. Veritabanı bu işlem için veriyi sıralamak veya bir hash tablosu oluşturmak zorundadır, bu da maliyetli bir iştir. Sadece hatalı JOIN işlemlerini örtmek için kullanılmamalıdır.

  • TOP ve OFFSET-FETCH (1:16-2:06): TOP komutu sıralama olmadan rastgele satırlar getirebilir; bu yüzden sıralı sonuç için mutlaka ORDER BY kullanılmalıdır. OFFSET-FETCH ise sayfalama için kullanılır ve yine ORDER BY zorunluluğu vardır.

  • Sayfalamanın Gizli Maliyeti (2:07-3:11): OFFSET komutu satırları atlamaz, onları arka planda okuyup atar. Bu durum sayfa numarası arttıkça sorgunun doğrusal olarak yavaşlamasına neden olur. Çözüm olarak, son görülen kaydın kimliği üzerinden filtreleme yapan anahtar tabanlı (keyset) sayfalama yöntemi önerilir.

  • Yaygın Hatalar (3:12-3:56): En büyük hata, tekrarlayan satırları gizlemek için DISTINCT'i yara bandı gibi kullanmaktır. Bu yaklaşım asıl sorunu (örneğin hatalı bir JOIN) çözmez ve hesaplamalarda yanlış sonuçlara yol açabilir.