Select * From nedir tanımını yapmak gerekiyor.
Slect * from nedir: Bir SQL tablosundaki tüm sütunları ve bu sütunlara ait olan tüm kayıtları sorgulamak için kullanılan bir yöntemdir. (Tanımda dikkatinizi çekmiştir. Tüm sütunları ve tüm kayıtları getirdiği.)
SQL Server Profiler üzerinde performans yükü oluşturup oluşturmadığını incelediğimde select * from sorgusunun biraz daha fazla zaman aldığını gözlemledim. Buradaki süreler tablodaki sütun ve satır sayısı ile orantılı olacağını göz önünde bulundurmak gerekir. Mevcut tabloda 10 sütun ve 4000 kayıt olduğunu olduğunu düşünürsek daha büyük tablolarda sorgu sürelerinin uzayacağı anlamına gelir. SQL Server kısmında sürenin çok ciddi bir fark oluşturacağını düşünmüyorum. Cevabı yazının devamında…
SQL Server Performansı
Select * from sorgusunu 87 ms gibi bir sürede tamamlandı.
1 2 3 |
select * from islem left join ogrenci on ogrenci.ogrno=islem.ogrno |
Select * from yerine 3 alanın verisini çektiğim başka bir sorunun tamamlanma süresi ise 51 ms gibi bir zaman aldı.
1 2 3 4 |
select ogrenci.ogrno,ograd,ogrsoyad from islem left join ogrenci on ogrenci.ogrno=islem.ogrno |
Network Performansı
Kayıt sayısının fazla olması SQL Motorunun sorguyu yürütmesinde çok fazla fark oluşturmayacaktır. Satırlar üzerinde hareket etmek için pointer kullanılır. Pointer adresler üzerinde işlem yapmaktadır.
Ancak belirli bir işlem için sadece kayıt_no yeterli ise tüm veriyi network üzerinden göndermek ciddi bir performans kaybına yol açacaktır. Netwrok üzerinde ne kadar çok veri taşınırsa süre de o oranda artış gösterecek. Tabi birde program tarafındaki bellek tahsisi sorunu ortaya çıkacaktır.
SQL Motorları performans açısından ciddi bir fark oluşturmasa da, sadece gerekli olan alanın ve mümkünse gönderilen verinin sınırlandırılması ağ performansı açısından ciddi bir rahatlama sağlayacaktır.