ADO Query sorgu hızı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
ADO Query sorgu hızı
Arkadaşlar merhaba;
Delphi7 + MSSQL 2008 kullanıyorum.
Sorguyu Delphi içinden AdoQuery ile gönderdiğim zaman (Active=True yaparak) sorgu sonucu son derece yavaş (4-5 saniyede) gelirken
aynı sorguyu SQL Server Management Studio üzerinden çalıştırdığımda sonucun gelmesi saniye bile sürmüyor hemen geliyor.
Toplamda getirdiği satır sayısı 1500.yani ciddi bir veri değil.
Fakat buna rağmen Delphi içinde sorgu çok yavaş çalışıyor.
Bunun nedeni nedir? Normal midir?
Sorguyu Delphi içinden de hızlandırmak için ne yapabilirim?
Yardımcı olan arkadaşlara şimdiden teşekkürler.
Delphi7 + MSSQL 2008 kullanıyorum.
Sorguyu Delphi içinden AdoQuery ile gönderdiğim zaman (Active=True yaparak) sorgu sonucu son derece yavaş (4-5 saniyede) gelirken
aynı sorguyu SQL Server Management Studio üzerinden çalıştırdığımda sonucun gelmesi saniye bile sürmüyor hemen geliyor.
Toplamda getirdiği satır sayısı 1500.yani ciddi bir veri değil.
Fakat buna rağmen Delphi içinde sorgu çok yavaş çalışıyor.
Bunun nedeni nedir? Normal midir?
Sorguyu Delphi içinden de hızlandırmak için ne yapabilirim?
Yardımcı olan arkadaşlara şimdiden teşekkürler.
Re: ADO Query sorgu hızı
eğer delphide ağır kaldığını düşünüyorsan sql de view oluşturup onu delphide çağırabilirsin tabi burda kullandığın grid nedir bilmediğim için herhangi bir yorum yapamıyorum ama genelde delphi tarafında tüm kayıtları açmak yerine kayıtları 100 100 yada 200 200 çağırsan çok daha hızlı çalışır.
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: ADO Query sorgu hızı
zaten view 'i çağırıyorum delphiden.
cxGrid kullanıyorum.
arada bu kadar ciddi fark olmaması lazım diye düşünüyorum.
Store procedure oluşturup onunlada denedim ama yine çok yavaş.
satır sayısı 1500 ama sütun sayım 21.
bunla alakası olabilirmi ?
cxGrid kullanıyorum.
arada bu kadar ciddi fark olmaması lazım diye düşünüyorum.
Store procedure oluşturup onunlada denedim ama yine çok yavaş.
satır sayısı 1500 ama sütun sayım 21.
bunla alakası olabilirmi ?
- hi_selamlar
- Üye
- Mesajlar: 523
- Kayıt: 05 May 2005 03:24
- Konum: DelphiTürkiye.COM
Re: ADO Query sorgu hızı
cxGrid bir özelliği vardı. Tam ismini hatırlamıyorum. GridMode veya ona benzer bir şey.underwater yazdı: cxGrid kullanıyorum.
O özelliği iptal ederseniz veri listelemesi hızlı olacaktır.
Ama bu özelliği devre dışı bırakırsanız, otomatik filtreleme vs. gibi özellikler devre dışı kalacaktır.
Onları manuel kendiniz tablo filtreleme ile yapabilirsiniz.
Kolay gelsin..
Herkes cahildir, bazi konularda.
Re: ADO Query sorgu hızı
bende projelerimde devexpress cxgrid kullanırım ama inanın bu söylediğiniz sıkıntıyı hiç yaşamıyorum şu anda yaklaşık 20.000 kayıtlı stok hareket raporu alıyorum yaklaşık olarak 2 -2,5 sn gibi bir zamanda geliyor ama şu var ben view kullanmıyorum direk queryime yazıyorum kodlarımı sonrada open yapıyorum raporum gayet hızlı bir şekilde geliyor birde kaç tablo join yapıyorsun?
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
- barisatalay
- Üye
- Mesajlar: 398
- Kayıt: 02 Nis 2013 05:43
- İletişim:
Re: ADO Query sorgu hızı
querynin calculate olayında birşeyler yapmadığınıza emin misiniz ? Çünkü orası her satır için ayrı bir işlem yapıyor.
Yeni bloğum: http://brsatalay.blogspot.com.tr/
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: ADO Query sorgu hızı
12 tabloyu join yapıyorum.
Calculate olarak 1 sütunumu hesaplatıyorum.
yavaşlığın cxgrid ile alakası yok.Çünkü grid bağlantısını koparıp denedim yine yavaş.
Söylediklerinizden anladığım kadarıyla bu yavaşlık normal.Sanırım çok fazla tabloyu birbirine join ettiğim için yavaş bu kadar.
Calculate olarak 1 sütunumu hesaplatıyorum.
yavaşlığın cxgrid ile alakası yok.Çünkü grid bağlantısını koparıp denedim yine yavaş.
Söylediklerinizden anladığım kadarıyla bu yavaşlık normal.Sanırım çok fazla tabloyu birbirine join ettiğim için yavaş bu kadar.
- barisatalay
- Üye
- Mesajlar: 398
- Kayıt: 02 Nis 2013 05:43
- İletişim:
Re: ADO Query sorgu hızı
hesaplama yaptırıyorum diyorsun 1500 satır geliyor diyorsun şöyle düşünürsek 1500 tane işlem yapıyor değil mi ? Eğer doğru ise yavaşlık bana normal geldi.
Yeni bloğum: http://brsatalay.blogspot.com.tr/
-
- Üye
- Mesajlar: 43
- Kayıt: 01 Kas 2013 10:03
Re: ADO Query sorgu hızı
Sorunun nedeni connectionstring de servername olarak . (nokta) yada (local) olabilir.
Bazen bilgisayar üzerinden birden fazla internet olmasından da kaynaklanabilir, mesela aynı anda hem ethernet hemde wifi üzerinden internete bağlı olmak gibi.
Bazen bilgisayar üzerinden birden fazla internet olmasından da kaynaklanabilir, mesela aynı anda hem ethernet hemde wifi üzerinden internete bağlı olmak gibi.
Re: ADO Query sorgu hızı
Aslında önemli olan şu soruya cevap bulmak 1500 kayit geri donuyor ama bu 1500 kayit 12 tane tabloda kaç tane kaydi sorgulayip donuyor ornegin tablo 5 te 40000 kayit varsa o 1500 kaydi döndürmek için 40000 kaydi sorgulayacak anlamına geliyor.
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
Re: ADO Query sorgu hızı
1. Süre kıyaslaması yaparken kaç tane JOIN yaptığınızın bir önemi yok. Çünkü aynı JOIN leri sorguyu Management Studio ile çalıştırırken de kullanıyorsunuz. (Yoksa farklı sorgu mu yazıyorsunuz?)
2. Tabloyu açmadan önce disableControls yapın.
5. Data'nın cxGrid'e bağlı olması mutlaka performansı düşürür. Süre kıyaslaması yaparken ölçümü cxGrid'e bağlı değilken yapın.
2. Tabloyu açmadan önce disableControls yapın.
Kod: Tümünü seç
try
ADOQuery1.DisableControls;
ADOQuery1.Open;
finally
ADOQuery1.EnableControls;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: ADO Query sorgu hızı
tayipk hocam senin soruna cevap vereyim öncelikle:
1500 satır geliyor ve diğer tablolarda bahsettiğin gibi 40.000 kayıt yok.En kabadayı tablom 5000 satır.
csunguray hocam dediğiniz doğru.Aynı joinleri Management Studio da da kullandığım için sıkıntı joinlerden kaynaklanmıyordur.
Bahsettiğiniz DisableControls/EnableControls u aynen denedim bir değişim olmadı.
Garip olan taraf şu
SQL sorgusunu Management Studio içinden çalıştırıyorum çok hızlı.
Aynı SQL sorgusunu kullanarak Management Studio içinde view oluşturup delphi tarafındada bu view ı kullanmak istersem işte o anda yavaşlıyor.(Gride bağlamadan da denedim)
Sırf bu iş için store procedure oluşturdum oda yavaş.View ile store procedure hızı aynı.
1500 satır geliyor ve diğer tablolarda bahsettiğin gibi 40.000 kayıt yok.En kabadayı tablom 5000 satır.
csunguray hocam dediğiniz doğru.Aynı joinleri Management Studio da da kullandığım için sıkıntı joinlerden kaynaklanmıyordur.
Bahsettiğiniz DisableControls/EnableControls u aynen denedim bir değişim olmadı.
Garip olan taraf şu
SQL sorgusunu Management Studio içinden çalıştırıyorum çok hızlı.
Aynı SQL sorgusunu kullanarak Management Studio içinde view oluşturup delphi tarafındada bu view ı kullanmak istersem işte o anda yavaşlıyor.(Gride bağlamadan da denedim)
Sırf bu iş için store procedure oluşturdum oda yavaş.View ile store procedure hızı aynı.
Re: ADO Query sorgu hızı
view den ziyade dorgunuzu direkt olarak Adoquery nin stringine yazıp open yapmayı deneidiniz mi?
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: ADO Query sorgu hızı
sıkıntının kaynağını buldum arkadaşlar.
sorgudaki
Where (dbo.SiparisTur.AnaTur = 'S') AND (dbo.SiparisTur.AnaGrupID = 2)
ifadesi sorgunun yavaşlamasının tek sebebi imiş.
Bu ifadenin sorguyu bu kadar yavaşlatabileceğini hiç düşünmemiştim.
Management Studio da bu ifadeyi kullanmıyordum.Ondan hızlı imiş.
Sizleride boşuna yordum kusuruma bakmayınız.
sorgudaki
Where (dbo.SiparisTur.AnaTur = 'S') AND (dbo.SiparisTur.AnaGrupID = 2)
ifadesi sorgunun yavaşlamasının tek sebebi imiş.
Bu ifadenin sorguyu bu kadar yavaşlatabileceğini hiç düşünmemiştim.
Management Studio da bu ifadeyi kullanmıyordum.Ondan hızlı imiş.
Sizleride boşuna yordum kusuruma bakmayınız.
Re: ADO Query sorgu hızı
Merhaba Arkadaşlar,
1.2 milyon kayıtlı bir database den
Select AdisyonID,UrunID from vw_ext_SipSatis_Gecmis' sorgusu ile 8 sn ye DBGrid e yüklüyorum.
Select AdisyonID,UrunAD from vw_ext_SipSatis_Gecmis' sorgusu ile yaklaşık 3 dk sürüyor. urunID integer, UrunAD string, sorgu süresi bu kadar farkeder mi arkadaşlar. UrunAD sorguda yazmadığımda sorgu sonucunu yazdırırken mecbur ürün ismini kullanacağımdan orada hata veriyor, bulunamadı filan diye. Bu sorguyu hızlandırmanın başka bir yolu varmı?
1.2 milyon kayıtlı bir database den
Select AdisyonID,UrunID from vw_ext_SipSatis_Gecmis' sorgusu ile 8 sn ye DBGrid e yüklüyorum.
Select AdisyonID,UrunAD from vw_ext_SipSatis_Gecmis' sorgusu ile yaklaşık 3 dk sürüyor. urunID integer, UrunAD string, sorgu süresi bu kadar farkeder mi arkadaşlar. UrunAD sorguda yazmadığımda sorgu sonucunu yazdırırken mecbur ürün ismini kullanacağımdan orada hata veriyor, bulunamadı filan diye. Bu sorguyu hızlandırmanın başka bir yolu varmı?