Veri tabanı Testi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

benim 90 kullanıcılı-2gb vt si olan bir yazılımım var.
win200srv ve sql2000 üzerinde yaklaşık 3 yıldır 7X24 çalışıyor ve bir kere bile sql2000 ile ilgili bir sorun yaşamadım.
fakat ms e para kazandırmak istemiyorum.
sql2000 cpu bayi fiyatı:5072$
client bayi fiyatı:143$
müşterilerimize kurduğumuz file server ve ftp server ları linux a taşımaya çalışyoruz.
uzun zamandır forumu takip ediyorum.kendi çapımda yaptığım testlerde doğru veritabanını bulmak istediğimden.
gönlüm FB veya PG den yana.
ama yaptığım testlerde umduğumu bulamadım veya ben bir yanlışlık yapıyorum.
forumda FB ün performansı ms in hep üstünde olduğu söylendi.

birde şunu sormak istiyorum.
arkadaşlar FB ün orta büyüklükteki vt lerde rahatlıkla kullanılabileceğini söylüyorlar. orta büyüklükteki vt ile neyi kasdediyorsunuz?

İyi çalışmalar.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2130
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

ibx ile 110 sn ye demissin. 110 saniye olduguna emin misin yoksa yanlislikla bi sifir fazladan mi koydun ?

ibsql ile 5000 kayit insert etmek 359 milisaniye surdu. yani 0,36 saniye. (fbird 1.5.3)

kod soyle birsey


Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
Sure:Cardinal;
i:integer;
begin
IBDatabase1.Open;
IBTransaction1.Active :=true;
Sure:=GetTickCount;
//ibsql1.sql = insert into FATURA_MY (ACIKLAMA,MUSTERI,TUTAR,SUBEID) VALUES(:ACIKLAMA,:MUSTERI,:TUTAR,:SUBEID)


IBSQL1.Close;

for i:=0 to 5000 do
begin
IBSQL1.Params[0].AsString := 'ANET';
IBSQL1.Params[1].AsInteger := 1;
IBSQL1.Params[2].AsFloat := 10.00;
IBSQL1.Params[3].AsFloat := 1;
IBSQL1.ExecQuery;

if i mod 500 = 0 then
  IBTransaction1.CommitRetaining;
end;
  edit1.Text := inttostr(GetTickCount - Sure);
end;
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

kimene yazdı:...
birde şunu sormak istiyorum.
arkadaşlar FB ün orta büyüklükteki vt lerde rahatlıkla kullanılabileceğini söylüyorlar. orta büyüklükteki vt ile neyi kasdediyorsunuz?

İyi çalışmalar.
Küçük - orta - büyük projelerde rahatlıkla kullanabilirsiniz. 1 kişi de kullansa da 10 kişi de, 50 kişi de...

Piyasada 900 GB büyüklüğünde Firebird veritabanları varmış.

Kolay gelsin.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

s.a
doğru yazdım, gerçekten 110 sn.
forumda özellikle ibdataset kullanın deniyor.
sorun nerede olabilir.

iyi çalışmalar.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Testleri yerel ağ yada net üzerinden gerçekleştirmek sonuçları etkileyecektir. teorik olarak bu kadar kayıt insert yada select yapılmaz, benim boyle bir proje icin tercihim pg olurdu. Server da yeterince RAM bulundurmanız lazım yalnız pg her connection icin 5-6 mb civarı bir proses olusturuyor.
90*5 MB yaklasık 500 MB sadece postgres icin harcanacak demektir.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

FB'yi ve Delphi'nin connection'ları ile Table, Query kullanımlarını biraz daha inceleyin derim.

TQuery'ler ReadOnly çalışır ancak, RequestLive'ını True yaparsanız TQuery'lere kayıt ekleme silme gibi işlemleri yapabilirsiniz, ancak bu çok tavsiye edilmeyen bir yöntem olur.

Bunun yerine kendi Insert, Update'lerinizi yapan Query'ler geliştirebilirsiniz veya IBUpdateSQL'ler ile Query'lerinizi donatırsınız.

Bunların yanı sıra, sonuç dönemeyecek işlemler için IB bileşenlerinde (kullanacağınız işe göre dizayn edilmiş bir çok bileşen mevcut) bunları iyi kombine ederek Ateş Kuşunu Uçurabilirsiniz.

Yada kanatlarını ve gagasını bağlayıp yerde koşturabilirsiniz :wink:

Bunların dışında performans ayarları ile ilgili olarak FB Server'a birkaç küçük müdahalede bulunup, uçan ateş kuşunu daha da hızlandırabilirsiniz.

2004 yılındaki M$-SQL ile karşılaştırmalı olan 7. Semineri bir izleyin isterseniz. (Ki o dönemde FB Server'ın, Server Parametrelerine müdahale edilmeden) default kurulumları ile karşılaştırmaları mevcut.

Bunların dışında yine forumdaki arkadaşların da testleri var (özellikle MEGE'nin yaptığı testi)

FB'yi dikkatli kullanırsanız yeterince iyi olduğunu görürsünüz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

kimene yazdı:Select Sonuçları
MSDE2000 SELECT 10.000X100 4sn MSDAC
MSDE2000 SELECT 10.000X100 7sn ADO-OLEDB
FB2.0 SELECT 10.000X100 20sn ado-odbc ile
PG8.2 SELECT 10.000X100 74sn ado-odbc ile
MYSQL5.0 SELECT 10.000X100 9sn mydac ile
Hocam böyle olmaz ama her horoz kendi çöplüğünde öter. Bence bu sonuçlar veri tabanlarının değil ODBC nin performansını gösteriyor.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

bende bir test gerçekeleştirdim.

IDE Delhpi7
Server FB 2.0
OS Windows XP SP2
İşlemci P4 2.66 (2.nesil)
Ram 512 Mb

Bağlantı Bileşenleri FIBPlus

Tablo yapısı

20 sütunlu 10.000 civarında kayıttan oluşan bir tablo...

üstelik FetchAll ile. 0.? sn. yani hesap edemedim. butona tıklar tıklamaz açıyor. sadise bekliyorumdur. FB 110 sn de 10.000 kaydı 10.000 kere takla attırır, amuda kaldırır... :D
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

110 saniye süren testin başta olmak üzere bütün testleri DataSet.DisableControls ve DataSet.EnabledControls procedure'lerini herbiri için kullanarak tekrarlar mısın? Zira 110 saniyede 5000 kayıt insert edilmez.

İyi çalışmalar.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

Kadir By örnek kodunuzu gönderebilirmisniz.

İyi çalışmalar
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Hakan Can yazdı:Zira 110 saniyede 5000 kayıt insert edilmez.
Datagenerator'de kullandığımız için biliyorum. Zeoslib kullanıyorsa mümkündür. Ah Zeoslib ah. :)
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

ben yanlış anlamışım. testi open olarak yapmıştım. bugün tekrar test isimli Database create ederek 8x10.000 kayıt üzerinde test yaptım. 3 sn. idi sonuç. tabi burda şu var. hız ise önemli olan advantage kullanın 5x10.000 kaydı 1,56 da oluşturuyor. ben son olarak 8x100.000 kaydı test ettim, 45 sn de oluşturdu.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Hocam tek başına hızda önemli değil. Paradox2la yapsak belki de paradox'ta çok hızlı yapacak. Bu noktada C/S SQL bir veritabanı kullanmanın pek çok avantajı var. Detaylar için bkz : Fahrettin abinin seminerleri.

Kolay gelsin.
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

FB ün daha fazla ram ile çalışmasını nasıl sağlayabilirim?
iyi çalışmalar.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

config dosyasında oynama yaparak. ayaralayabilirsin. forumda daha önce konuşuldu.
Cevapla