select count sorgusunu hizlandirmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
VooDoo
Üye
Mesajlar: 126
Kayıt: 22 Haz 2005 10:25
Konum: Bursa & ANKARA
İletişim:

select count sorgusunu hizlandirmak

Mesaj gönderen VooDoo »

evet nasil yaparim, elimde cok veri var ve veri alanlarinin bazilari da text olarak buyuk alanlar. where kismina birkac kriter geldiginde sorgu acayyip yavasliyor, buldugum sonuclarin kac adet oldugunu gostermem gerekiyor ama cok yavasliyor

alternatif sayi buldurma fikirlerinize açığım
teşekkürler
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Kullanıcı avatarı
VooDoo
Üye
Mesajlar: 126
Kayıt: 22 Haz 2005 10:25
Konum: Bursa & ANKARA
İletişim:

Mesaj gönderen VooDoo »

teşekkür ederim ama zaten indeksli alanlarım

ayrıca birde indekslenemeyecek kadar buyuk bir alanım varki hiç sorma

where deki sırayı degistirmek nasıl bir hızlanma getirecek bir deneyecegim
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Sadece bu değil.Sp yide dikkate alman lazım.Yarı yarıya fark atıyor.integer

alanların performansı daha da fazlaymış.+ bir de kontrollerin Disable durumu

var.
Kullanıcı avatarı
VooDoo
Üye
Mesajlar: 126
Kayıt: 22 Haz 2005 10:25
Konum: Bursa & ANKARA
İletişim:

Mesaj gönderen VooDoo »

sp kullanamam da su disable lara da bakicam bakalim
uyarin icin sagolasin

ayrica integer alanlarim da var ama cogu varchar yada text turunde
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
valla denemedim ama

Kod: Tümünü seç

select count(*) from XXXX
yerine

Kod: Tümünü seç

select count(ID) from XXXX
ıd primery key olan alanımız.

bu şekilde daha hızlı çalışması gerekir gibime geliyor.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
VooDoo
Üye
Mesajlar: 126
Kayıt: 22 Haz 2005 10:25
Konum: Bursa & ANKARA
İletişim:

Mesaj gönderen VooDoo »

pek birsey faketmiyor hatta hicbirsey farketmiyor
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Google da dolaşırken şunu buldum.
Belki sorun çözülmüştür ama olsun :)

Count(1) kullanımının daha performanslı olduğunu söylüyor...

Kod: Tümünü seç


TIP:  Performance Tuning

Since the COUNT function will return the same results regardless of what field(s) you include as the COUNT function parameters (ie: within the brackets), you can change the syntax of the COUNT function to COUNT(1) to get better performance as the database engine will not have to fetch back the data fields.

For example, based on the example above, the following syntax  would result in better performance:

    SELECT department, COUNT (1) as "Number of employees" 
    FROM employees 
    WHERE salary > 25000 
    GROUP BY department;

Now, the COUNT function does not need to retrieve all fields from the employees table as it had to when you used the COUNT(*) syntax.  It will merely retrieve the numeric value of 1 for each record that meets your criteria.

  
iyi günler...
Kullanıcı avatarı
ozkanagiral
Üye
Mesajlar: 79
Kayıt: 17 Oca 2004 06:23
Konum: istanbul
İletişim:

Mesaj gönderen ozkanagiral »

S.A.

Yapmak istediğini doğru anladıysam kodu aşağıda

Kod: Tümünü seç

  if DMOD1.IBDS_KISI.RecordCount = 0 Then
    Begin
     LblMsjGoster.Color:=clRed;
     LblMsjGoster.Font.Color:=clYellow;
     LblMsjGoster.Caption:= 'Aradığınız '+TarihindeGelenlerTS+' Tarih''inde gelenler''e ait kayıt. Bulunamadı...'
    End
    Else
    Begin
     LblMsjGoster.Color:=clGray;
     LblMsjGoster.Font.Color:=clWhite;
     LblMsjGoster.Caption:= 'Aradığınız '+TarihindeGelenlerTS+' Tarih''inde gelenler''e ait '+IntToStr(DMOD1.IBDS_KISI.RecordCount)+' Adet kayıt. Bulundu...';
    End;
end;
Mantık yürütürsek normalde asıl sorgun çalışacak verilerin gelecek hesaplama yok daha sonra .recordcount ile gelen kayıt sayısı alınacak, birde bunu dene daha hızlı olacağını düşünüyorum.

İyi Çalışmalar.
Kullanıcı avatarı
VooDoo
Üye
Mesajlar: 126
Kayıt: 22 Haz 2005 10:25
Konum: Bursa & ANKARA
İletişim:

Mesaj gönderen VooDoo »

count(1) denedim ama count(id) ile arasinda bir fark yok gordugum kadari ile yavaslik ayni

ozkanagiral arkadasim senin demek istedigini ise anlamadim.
recordcount ile de zaten cok yavas oluyor olay
Cevapla