Hız İçin; SP ? Viev? Programdaki SQL?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Hız İçin; SP ? Viev? Programdaki SQL?

Mesaj gönderen pro_imaj »

Merhaba;

Ağ ortamında çoklu kullanıcıyla çalışan (ağ ortamında yaklaşık 10 makina) bir uygulamadaki hız sorunu var.

Delphi tarafından Query ile veriyi çekmekmi.?
Stored Proıcedure kullanmakmı?
Vievs oluşturup oradan veriyi çekmekmi?

Sorgunun hızını etkiler.

Ben Delphi tarafından query ile sorguyu alıyorum sanırım ağ çok kasılıyor ve Sorgu sonucu çok yavaş geliyor.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ben genelde sp leri tercih ediyorum.
view neredeyse hiç kullanmıyorum.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

bu aslında tabloların index yapısına bağlı birazda,
bir tablo için prosedür yazmaya gerek yok.

ama bir den fazla tablo birleştirilip içinde func. kullanılacakca o zaman St.pros. derim. ee o da yoksa

bir Tqeury 'da çok çok rahat iş görür.ama bunda da Ado, BDE ye göre yavaş kaçıyor.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Hepsi hemen hemen aynıdır.

Sorun çektiğin verinin büyüklüğü ile ilgilidir.

Sonuçta queryler her halukarda VT'nin olduğu yerde çalışır.

Sana gelen sonuçtur sadece.

Gelen sonuç büyükse o artık networke ait sorun oluyor.

İyi çalışmalar.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.p ler hazır derlenmiş olduğu için prepare time dan kar edersin. ancak data ve indexine göre bu farkı son kullanıcı farketmeyebilir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Bir sorguda 2-3 dak. bekliyor kullanıcı. Ama işşin garibi şöyleki Aynı iş için tekrar düğmeye basıldığında aynı sql kodu tekrar çalışıyor ve anında veri geliyor veri ilk gelirken uzun sürüyor çok enterasan.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba;
bişey farkettim bunu sizle paylaşmak istedim.

SQL komutlarımı sorgularken Profiler ile gözlemledim Ve Gördümki

Kod: Tümünü seç

Select * From Depo_Barkod
Şeklinde 100.000 kayıtı ve 120 alanı kendisi arka planda yukarıdaki şekilde sorguluyor. Halbuki kodların hepsine baktım ben böyle bir kod kullanmıyorum.

Buna sebeb olan nedir acaba!

Ağır olan sorguya
viewtopic.php?t=19138

linkiyle ulaşabilrsiniz.

Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

MS-SQL Server'ın bir özelliğidir bu.

Bir tablo ile ilgili ilk işlem yapıldığında o tablonun tamamını hafızaya alır. Sonraki işlemleri hafızadan yapar (kabaca bu şekilde).

Sorunun anlaşılan temelde bununla ilgili. Tablo devamlı veri girilen tablo değilse çok lehte sonucu oluyor.

Ama 120 alanlı tabloyu anlaşılan senin 30-40 tabloya bölmen yani normalize etmen gerekiyor. Zira sık verigirişi yapılan master tablolar böyle devasa büyüklükte olmaması gerekir.

Gerçi yapıya müdahale imkanın yok ise de yapacak fazla birşey yok (bilgisayarın hafızasını epey büyütmekten başka). Zira hafızaya sığmazsa harddiski hafıza olarak kullanmaya başlaması gerekecek.

İyi çalışmalar.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

ADOTable kullandıysan eli mahkum bu şekilde çalışıyor aksi halde SQL Server süzülmüş kayıtlar üzerinden çalışıyor. Zira 150.000 kayıt yaklaşık select * from ile 50 sn de açılırken where şartı ile bu süre 1 sn bile sürmüyordu. Uygulama olarak kullandım tecrübe ile sabittir. İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

sabanakman yazdı:ADOTable kullandıysan eli mahkum bu şekilde çalışıyor aksi halde SQL Server süzülmüş kayıtlar üzerinden çalışıyor. Zira 150.000 kayıt yaklaşık select * from ile 50 sn de açılırken where şartı ile bu süre 1 sn bile sürmüyordu. Uygulama olarak kullandım tecrübe ile sabittir. İyi çalışmalar.
Ado table vs geçtim hocam SQL Query Analeyzer ile 5.5 dakikada sorguladı veriyi.

Sanırım benim Bu sql sorgusunu sanırım bu raporu almaktan ziyade bir kart yazıp kartta bilgilerin güncellenmesi gerek yoksa bu olmicak.

Başka neden olabilr arkadaşlar. Kendi şirketimde deniyorum yine aynı :(
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Hakan Can yazdı:MS-SQL Server'ın bir özelliğidir bu.

Bir tablo ile ilgili ilk işlem yapıldığında o tablonun tamamını hafızaya alır. Sonraki işlemleri hafızadan yapar (kabaca bu şekilde).

Sorunun anlaşılan temelde bununla ilgili. Tablo devamlı veri girilen tablo değilse çok lehte sonucu oluyor.

Ama 120 alanlı tabloyu anlaşılan senin 30-40 tabloya bölmen yani normalize etmen gerekiyor. Zira sık verigirişi yapılan master tablolar böyle devasa büyüklükte olmaması gerekir.

Gerçi yapıya müdahale imkanın yok ise de yapacak fazla birşey yok (bilgisayarın hafızasını epey büyütmekten başka). Zira hafızaya sığmazsa harddiski hafıza olarak kullanmaya başlaması gerekecek.

İyi çalışmalar.
Hocam Ben sorguyla sonuç almicam vazgeçtim Kart yazıyorum.
Değerli zamanınızı ayırdığınız için hepinize tşk ederim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İyi bir yazılımcı kendi çözümünü üretebilmek için gerekirse kullandığı tekniği değiştirmelidir. :twisted:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

sabanakman yazdı:İyi bir yazılımcı kendi çözümünü üretebilmek için gerekirse kullandığı tekniği değiştirmelidir. :twisted:
Tabiki Değiştirmelidir. Bende onun için görüş alıyorum !
Bu sinir neden onu çözemedim.!!!

Saygılarımla
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İletişim hatası oldu galiba özür dilerim. Bunu sadece sinsi şeytani gülüş ifadesi için kullandım (tamamen eğlence amaçlı). Gaiba bir anda üniversitedeki arkadaş gurubumdayım sandım boş bulundum. Karakter olarak tanınmadığım bir ortamda olduğumu unutmuşum pardon :( .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Mesaj gönderen dynamo »

pro_imaj,kardeş ..bende delphi7 için sdac'ın komponentinin 240 versiyonu var.performansı aynen ibx,dbx gibi. ado nun 2 dk da yaptığı sorguyu 10 sn de yapıyor.projende yine ado componentlerini kullanır, sadece ağır sorguların olduğu formlarda sdac'ı kuulanırsın.sdac400 versiyonu trial,crlab ın sitesinden bakabilirsin.sanırım 240 versiyonunu ücretsiz.kurarken shareware,trial gibi gibi bir mesaj vermedi. istersen rapidshare'e upload edeyim,ordan çekersin.. :roll:
Cevapla