İnsert işlemini firibirdden mi yapalım delphiden mi?
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
İnsert işlemini firibirdden mi yapalım delphiden mi?
Selamlar arkadaşlar... profosyonel arkadaşların bir konuda görüşünü almak istiyorum. Kullandığım veri tabanında müşterilere ait 2 tabloda bilgilerini tutuyorum. (satışlar, taksitler, ödemler vs) extre için ise firebirdde procedure yazdık kullanıcının işini görüyor. extre denildiğinde firebird ilgili tablolardan müşteri ide bağlı bilgileri alıp extre tablosuna aktarırıyor. sorun yok. ancak kayıt sayısı arttıkça (ve de daha yüksek rakamlar olacak) olunca program kasılıyor, extre formu showmodal formunda olmasına rağmen arkada kalıyor. ben bunu diyorum ki fribirddeki kodları delphi içinden göndersem procedureyi kullanmasam nasıl olur. hızlanma olurmu? program yine kasılırmı? sizin önerileriniz nelerdir? teşekkür eder saygılarımı iletirm tüm arkadaşlara...
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
Extre için gelen sorgudan alanına büyük ihtimal ile veri girişi yapılmıyordur. Ben senin yerinde olsam önce bütün bir tane view tanımlarım. View de Select ve where kısmını olabildiğince optimum seviyede tutarım. Mesela
Extrede cari tablosunda ve müşteri tablosundan sadece gerekli bilgileri view de birleştirebilirsin. Daha sonra sotre porc u bu view den veri alacak şekilde yeniden ayarla. hız fark edecektir.
bence sadece Müşteri adı, İşlem Türü, Tutar, Bakiye, İşlem Tarhi yeterli olur. Ama müşterinin ihtiyacına göre bu seçimi en uygun olarak ayarlamalısın. Alan sayısını mümkün olduğunca az tut.
Daha sonra bu bilgilere where tarih > 01.01.2010 gibi kısıtlayıp sadece 2010 da girilen tarihleri alabilirsin.
Delphiden çekeceğin Sql i ayarlamalısın.
Mesela formu açarken iki tabe datetime pictureden ilk tarih son tarih seçip . dataseti bu iki tarih arasında kayıtarda açmayı sağlayabilirsin. yada önce sadece cari isimlerinin olduğu bir dataseti bir db combo box a bağlayıp. Extre sqlini
where cariadi = comboda_seciliCari gibi bir sorgu ile bütün dertlerin bitebilir bence.
Extrede cari tablosunda ve müşteri tablosundan sadece gerekli bilgileri view de birleştirebilirsin. Daha sonra sotre porc u bu view den veri alacak şekilde yeniden ayarla. hız fark edecektir.
bence sadece Müşteri adı, İşlem Türü, Tutar, Bakiye, İşlem Tarhi yeterli olur. Ama müşterinin ihtiyacına göre bu seçimi en uygun olarak ayarlamalısın. Alan sayısını mümkün olduğunca az tut.
Daha sonra bu bilgilere where tarih > 01.01.2010 gibi kısıtlayıp sadece 2010 da girilen tarihleri alabilirsin.
Delphiden çekeceğin Sql i ayarlamalısın.
Mesela formu açarken iki tabe datetime pictureden ilk tarih son tarih seçip . dataseti bu iki tarih arasında kayıtarda açmayı sağlayabilirsin. yada önce sadece cari isimlerinin olduğu bir dataseti bir db combo box a bağlayıp. Extre sqlini
where cariadi = comboda_seciliCari gibi bir sorgu ile bütün dertlerin bitebilir bence.
Ahmet DENİZ
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
genel olarak sp ile yapılan işlemi delphi tarafında yapmak daha yavaş olur,
yada tam tersi delhide yaptırılan bir hesaplama SP ye alınınca hızlanır... tecrübeyle sabittir
yada tam tersi delhide yaptırılan bir hesaplama SP ye alınınca hızlanır... tecrübeyle sabittir

bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
tekrar selamlar arkadaşlar... bende sizlere katılıyorum. veri tabanından çalıştırılan kodlar daha hızlı cevap veriyor. peki arkadaşlar ben extrede veri tabanındaki kodlarla tabloya aktarıyorum. yalnız aktardıktan sonra oluşan yeni tabloda hesaplama işlemi yapıtırıp 2 tane alanı update ettiriyorum. bu işlemi de veri tabanındaki precedurlere yaptırma imkanımız olabilir mi? bizim extredki ksmayı bu hesaplatma işi yapıyor. yapılan hesaplatma işi tüm kayıtları döngüye sokuyor bazı verilere bakarak yapılan işlemden sonraki son bakiyeyi, ve bir önceki günün (devredeni) bakiyesini ilgili alanlara aktarıyor. bu işi delphiden verdiğimiz kodla yapıyoruz. bunu da veri tabanına yaptırtabilirmiyiz? böylelikle kasılma sorunu çözülebilir?
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
sorunu tam anlamadım. Ama anladığım kadarı ile view le yapılabilecek bir şey gibi görüyorum olayı.
View de iki ayrı tablodan veri çekip çektiğin veriler üzerinde sql ile hesaplamalar yaptırabilirsin. where kısmında select kullanmazsan çokda hızlı sonuç alırsın. Ekteki dosyada küçük bir örnek var
View de iki ayrı tablodan veri çekip çektiğin veriler üzerinde sql ile hesaplamalar yaptırabilirsin. where kısmında select kullanmazsan çokda hızlı sonuç alırsın. Ekteki dosyada küçük bir örnek var
- Dosya ekleri
-
- BUG_TEST.zip
- twotable ile başlıyan view yardımcı olabilir
- (50.56 KiB) 144 kere indirildi
Ahmet DENİZ
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
ahmet bey gönderdiğiniz veri tabanını açamadım. hangi versiyonda oluşturuldu.
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
Bence sen sorgularını ve tablo yapısını bir gözden geçir milyon kayıt bile olsa aşırı yavaşlama olmuyor ben kendim denedim.
Re: İnsert işlemini firibirdden mi yapalım delphiden mi?
Firebird 2.5baloglurecep yazdı:ahmet bey gönderdiğiniz veri tabanını açamadım. hangi versiyonda oluşturuldu.
2.5 den eski firebird sunucular ods hatası verir.
Ahmet DENİZ