İnsert işlemini firibirdden mi yapalım delphiden mi?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen baloglurecep »

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...
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen AhmetNuri »

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.
Ahmet DENİZ
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen unicorn64 »

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 :)
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...

Resim
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen baloglurecep »

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?
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen AhmetNuri »

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
Dosya ekleri
BUG_TEST.zip
twotable ile başlıyan view yardımcı olabilir
(50.56 KiB) 145 kere indirildi
Ahmet DENİZ
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen baloglurecep »

ahmet bey gönderdiğiniz veri tabanını açamadım. hangi versiyonda oluşturuldu.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen orhancc »

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.
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: İnsert işlemini firibirdden mi yapalım delphiden mi?

Mesaj gönderen AhmetNuri »

baloglurecep yazdı:ahmet bey gönderdiğiniz veri tabanını açamadım. hangi versiyonda oluşturuldu.
Firebird 2.5
2.5 den eski firebird sunucular ods hatası verir.
Ahmet DENİZ
Cevapla