Elimizde iki tablolu bir yapı olduğunu düşünelim, İşçiler ve Yöneticiler. Üç adet yöneticimiz ve bu yöneticilere bağlı 60000 çalışanımız olsun. Yöneticilere ait olan işçi sayılarına baktığımızda :
Select COUNT(*),yoneticiID From tblIsci Group By yoneticiID Order By yoneticiID
| Yonetici ID | İşçi Sayısı |
| 1 | 40000 |
| 2 | 19999 |
| 3 | 1 |
İlk olarak 1 adet işçinin bağlı olduğu ID si 3 olan yöneti ve işçi bilgilerini sorgulayalım.
| Sıra | SQL Sorgusu | Sonuç |
| 1 | SELECT isciID, isciAdi, (SELECT yoneticiAdi FROM tblYonetici WHERE tblYonetici.yoneticiID = tblIsci.yoneticiID) FROM tblIsci WHERE tblIsci.yoneticiID = 3 | Etkilenen Satır Sayısı : 1Sorgu Maaliyeti : 0.0006 |
| 2 | SELECT isciID, isciAdi, yoneticiAdi FROM tblIsci INNER JOIN tblYonetici ON (tblYonetici.yoneticiID = tblIsci.yoneticiID) WHERE tblIsci.yoneticiID = 3 | Etkilenen Satır Sayısı : 1Sorgu Maaliyeti : 0.0006 |
Yukarıdaki 1 ve 2 numaralı testleri incelediğimizde etkilenen satır sayısı ve sorgu maaliyetleri aynı oldu. Şimdi birde etkilenen satır sayısı arttığında sorgu maaliyetinde bir değişme olacak mı ? bunu gözlemleyelim.
| Sıra | SQL Sorgusu | Sonuç |
| 3 | SELECT isciID, isciAdi, (SELECT yoneticiAdi FROM tblYonetici WHERE tblYonetici.yoneticiID = tblIsci.yoneticiID) FROM tblIsci WHERE tblIsci.yoneticiID = 1 | Etkilenen Satır Sayısı : 40000Sorgu Maaliyeti : 4.326 |
| 4 | SELECT isciID, isciAdi, yoneticiAdi FROM tblIsci INNER JOIN tblYonetici ON (tblYonetici.yoneticiID = tblIsci.yoneticiID) WHERE tblIsci.yoneticiID = 1 | Etkilenen Satır Sayısı : 40000Sorgu Maaliyeti : 0.305 |
3 ve 4 numaralı testlerimize baktığımızda etkilenen satır sayıları eşit ve 40000, ama bu sefer sorgu maaliyetleri Join işleminde düşük çıktı.
Sonuç olarak kullanacağımız sorgularda eğer farklı tablolardan veriler ile çalışıyor ve etiklenecek olan satır sayısının büyük olacağını kestirebiliyorsak Join işlemlerini Sub Query işlemlerine tercih etmeliyiz.

Bu yazı yorumlara kapalı.