Query yazarken birkaç püf nokta

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
underwater
Üye
Mesajlar: 86
Kayıt: 27 May 2014 04:27

Query yazarken birkaç püf nokta

Mesaj gönderen underwater »

Arkadaşlar merhaba;

Sorgu yazarken tesadüfen farkettiğim birkaç noktayı paylaşmak istedim.

Geçen günkü sorgu hızı problemimle cebelleşirken farkettim :)

Select * from Tablom where (Sutun1=1) or (Sutun1=2) or (Sutun1=3)
Select * from Tablom where (Sutun1=1 or Sutun1=2 or Sutun1=3)

Bu iki sorguda aynı şeyi döndürüyor fakat alttaki sorgu çok daha hızlı çalışıyor.(Basit sorgularda hız farkı görülemeyebilir ama ben 1500 satır döndüren sorgumda 2-3 kat hız farkı olduğunu bizzat gördüm)

Select * from Tablom where (Sutun1=1) or (Sutun1=2) or (Sutun1=3) ifadesi yerine
Select * from Tablom where Sutun1 in (1;2;3) ifadesiside yine aynı şekilde çok daha hızlı çalışıyor.

Belki bu bahsettiğim püf noktaları ustalarımız biliyordur fakat ben bilmeyenler için yazayım dedim.

Selamlar.
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Query yazarken birkaç püf nokta

Mesaj gönderen omurolmez »

İlk paragrafınızda yazdığınız iki farklı ifade, basit bir hız farkı ile kalmayıp; birbirinden farklı anlamlara geliyor olabilir. Veritabanına bağlı olarak dönen sonuç kümesi değişebilir. Parantez ve bitwise operator öncelikleri dillere göre farklıdır !
Ömür Ölmez
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Query yazarken birkaç püf nokta

Mesaj gönderen sabanakman »

Hangi veri tabanını kullanmaktasınız. Belki her iki sorgunun aynı şarta sahip olduğuna karar verip, ikinci defada daha önce sorgulanmış hazır bekleyen veri kümesini getiriyor olması hızlı bir sonuç doğurmuş olabilir. Varsa veri tabanını hizmeti yeniden başlatın veya sistemi yeniden başlatın sorguları tersinden deneyin. Bu sefer de sonradan çalışan diğer sorgu daha hızlı çalışıyor olabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
underwater
Üye
Mesajlar: 86
Kayıt: 27 May 2014 04:27

Re: Query yazarken birkaç püf nokta

Mesaj gönderen underwater »

Saban hocam SQL 2008 kullanıyorum.
Hız farkı sadece Management Studio da yok.Delphi tarafındada hızlı.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Query yazarken birkaç püf nokta

Mesaj gönderen sabanakman »

Sorguyu nereden çalıştırdığının bir önemi yok zaten. Misal, çok yüklü miktarda veriyi sorgularken bir deneme esnasında ilki ile sonrakiler arasında kat kat fark çıkabiliyor. Çünkü ilk sorgu istenen sonucu daha hazır halde tutmaktadır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla