Web Sitemiz

Önemli Siteler

Performans'la İlgili Küçük İpuçları

Oracle'da ya da diğer birçok veritabanında aşağıdaki keyword'lere yönelik olarak performans konusunda bilgiler biraz karışıktır.
IN clause'unu kullanmak, OR ... OR ... 'u kullanmaktan daha performanslı mıdır?
Yanıtmız HAYIR.
SELECT * FROM tabloadi WHERE il=6 OR il=34 OR il=35; ile SELECT * FROM tabloadi WHERE il IN (6,34,35); arasında hiçbir fark olmadığı gibi aslında IN ... şeklindeki bir kullanım da OR ... OR ... şekline otomatik olarak dönüştürülmektedir. Tabii ki IN ile kullanım hem okunma açısından hem de yazım açısından daha kolaydır.

Benzer bir performans konusu ise BETWEEN ... AND ... kullanımı için de geçerlidir.
WHERE maas BETWEEN 1000 AND 1500 şeklindeki bir ifade WHERE maas>=1000 AND maas<=1500 den farklı bir yazım değildir ve performans açısından hiçbir avantajı yoktur.

Peki ya 2 tablo JOIN yapılıyor ve şu SQL çalıştırılıyorsa:
SELECT adi, soyadi, notu
FROM ogrenci, notlar
WHERE ogrenci.ogrno=notlar.ogrno;

Yukarıdaki sql yerine
SELECT o.adi, o.soyadi, n.notu
FROM ogrenci o, notlar n
WHERE o.ogrno=n.ogrno;
şeklinde bir SQL yazmak her zaman daha avantajlıdır. Tabii ki daha da performanslıdır. İlk örneğimizde adi, soyadi ve notu alanlarının hangi tabloda olacağını bulmak için Veri Tabanı Yönetim Sistemi 2 tabloyu da araştırmak zorunda kalacaktır. Ama 2. örnekte hangi tabloda hangi alanın olduğunu siz belirttiğiniz için daha hızlı çalışacaktır.