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

Veri tabanı Testi

Mesaj gönderen kimene »

Merhaba arkadaşlar.
kendi bilgisarımda bir test yaptım. Bunu sizlerle paylaşmak istiyorum.
msde her alanda çok öndeydi.
şimdiye kadar forum da takip ettiğim bilgilerle, büyük bir çelişki içinde.
Yorumlayabilirseniz sevinirim.
İyi Çalışmalar.

Bilgisayar:IBM Laptop-PIV3.06-1GB RAM-100GB HD
İşletim Sistemi: WinXP Pro
Veritabanlarının default değerleriyle oynamadım.
VERITABANI ISLEM TURU KAYITSAYISI 1.SÜRE 2.SÜRE 3.SÜRE BAĞLANTILAR
MSDE2000 APPEND 1000 10 SN 13 SN 17 SN MSDAC
FB2.0 APPEND 1000 35 SN 85 SN 138 SN ADO-ODBC
PG8.2 APPEND 1000 23 SN 45 SN 63 SN ADO-ODBC
MYSQL5.0 MYSQL5.0 APPEND 1000 65 SN 70 SN 70 SN MYDAC
MSDE2000 SELECT 3000X50 2 SN 2 SN 2 SN
FB2.0 SELECT 3000X50 11 S 11 S 11 S
PG8.2 SELECT 3000X50 14 SN 15 SN 15 SN
MYSQL5.0 SELECT 3000X50 7 SN 7 SN 7 SN
MSDE2000 WHERE 500 KERE 3 SN 3 SN 3 SN
FB2.0 WHERE 500 KERE 10 SN 10 SN 10 SN
PG8.2 WHERE 500 KERE
MYSQL5.0 WHERE 500 KERE 10 SN 10 SN 10 SN
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bu çok güzel bilgiler için teşekkürler. Bugün tam böyle bir merak belirmişti kafamda yazın cuk yerine oturdu. Bir yüzsüzlük yapıp burada Microsoft SQL Server 2005 Express Edition (MSDE'nin 2005 versiyonu) ile ilgili bilgiyi de ekleyebilir misin? Kafamda beliren asıl soru buydu da. Hazır diğerlerini bulmuşsun buna da bir bakabilirsen sevinirim. Muhtemelen 2005 daha yavaş çıkacak biliyorum ama somut bir gösterge olursa daha iyi olur.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

şu an 2005 i bilgisayarıma yükleyemem. msde ile sorun çıkarır diye korkuyorum. daha önce problem yaşamıştım ve sistem yüklemek zorunda kaldım. İyi çalışmalar
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Neyse, bu da yeter :) . Ellerine sağlık.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
yaptığınız çalışmayı paylaştığınız için teşekkürler.
ancak yaptığınız test ile ilgili biraz daha bilgi verirseniz sevinirim.
bağlantı şekilleri, insert mantığı(table mı kullandınız yoksa query mi?vs.)
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

viewtopic.php?p=39207#39207
20:44:30: Started.

20:44:30: Preparing for relation "ARSIV".
20:44:30: Starting 10000 rows for relation "ARSIV".
20:44:34: Inserted 10000 of 10000 rows for relation "ARSIV".

20:44:34: Finished.
bide 1 milyon kayıtla deneyeyim bakayım ne olacak Smile
data.gdb
176,681 kb
1.009.282 KAYIT VAR

Alıntı:
select max(toplanabilirdoublebifield) from arsiv

MAX
INTEGER
--------------
1999

1 row(s) fetched (1 row(s) listed).
Exec time: 2.45 s / Fetch time: 0.00 s
bu şakaysa hiç komik değil, ciddiyse çok komik :)
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Aslında karşılaştırma pekte adil olmamış. MSDE için MSDAC kullanıp, yazmışsınız. Yani :

client -> oleDB provider -> msde

şeklinde olmuş. Firebird için :

client -> ado -> odbc -> oledb provider -> firebird

şeklinde olmuş. Bu şuna benziyor : 10 km mesafedeki yola dolaşıp 100 km. mesafe yapıp varmışsınız. Daha sonra 50 km'deki yer daha yakın diyorsunuz :)

Testlerinizi ibx veya fib + ile yapın bakalım, neler çıkacak.

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

Mesaj gönderen kimene »

procedure TForm1.Button15Click(Sender: TObject);
VAR i:integer;
begin
IBQuery1.Open;
edit5.Text:=DateTimeToStr(now);
for i:=1 to 1000 do
begin
IBQuery1.Append;
IBQuery1KAYITNO.Value:=i;
IBQuery1ADI.Text:='ADI'+inttostr(i);
IBQuery1SOYADI.Text:='SOYADI'+inttostr(i);
IBQuery1.Post;
end;
edit6.Text:=DateTimeToStr(now);
end;

kodlarını yazdıktan sonra aşağıdaki hatayı aldım. Bunu çözmeme yardım edebilirseniz IBX ile de test ederim.

IBQuery1:Cannot modify a read-only dataset

İyi ç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 »

IBQuery nesnesini kayıt girmek için kullanamazsın bunun için IBUpdate... bileşeni ile beraber kullancaksın.

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

Mesaj gönderen kimene »

procedure TForm1.Button15Click(Sender: TObject);
VAR i:integer;
begin
IBDataSet1.Open;
edit5.Text:=DateTimeToStr(now);
for i:=1 to 1000 do
begin
IBDataSet1.Append;
IBDataSet1KAYITNO.Value:=i;
IBDataSet1ADI.Text:='ADI'+inttostr(i);
IBDataSet1SOYADI.Text:='SOYADI'+inttostr(i);
IBDataSet1.Post;
end;
edit6.Text:=DateTimeToStr(now);
end;

kodu yukarıdaki şekilde değiştirdim.
IBDataSet1:Cannot modify a read-only dataset
hatasını aldım.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

InsertSQl kodlarını yazmalısın. Datasete sağ tıkla SQL Generate ile key field ve update fieldleri seçerek SQl cümlelerinin oluşması için GenerateSQL butonuna tıkla...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
1. kodların code tagı içerisinde yazarsan daha okunaklı olur.
2. ibdataset in kullanımını biraz incelemende fayda var sanırım.
ibdataset in insertsql,modifysql, selectsql ve deletesql leri var. sanırım insert sql e birşey yazmadığın için bu hatayı alıyorsun.
forumda ibdataset i biraz araştır. :wink:
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

ben daha önce hiç FB kullanmadım.
ado ile ibx ile arasındaki hız farkı yazdığım kodla ilgili olabilirmi?
çünkü ibx in daha hızlı olduğunu söylemişsiniz.


procedure TForm1.Button15Click(Sender: TObject);
VAR i:integer;
begin
IBDataSet1.Open;
edit5.Text:=DateTimeToStr(now);
for i:=1 to 5000 do
begin
IBDataSet1.Insert;
IBDataSet1KAYITNO.Value:=i;
IBDataSet1ADI.Text:='ADI'+inttostr(i);
IBDataSet1SOYADI.Text:='SOYADI'+inttostr(i);
IBDataSet1.Post;
end;
edit6.Text:=DateTimeToStr(now);
end;

Süre:110 sn IBX ile


procedure TForm1.Button5Click(Sender: TObject);
VAR i:integer;
begin
ADOQUERY2.Open;
edit5.Text:=DateTimeToStr(now);
for i:=1 to 5000 do
begin
ADOQUERY2.Append;
ADOQUERY2KAYITNO.Value:=i;
ADOQUERY2ADI.Text:='ADI'+inttostr(i);
ADOQUERY2SOYADI.Text:='SOYADI'+inttostr(i);
ADOQUERY2.Post;
end;
edit6.Text:=DateTimeToStr(now);
end;

Süre:15 sn ado ve odbc ile

önce yaptığım testte sonuçları gride bağlamıştım.buda test sonuçlarının yanlış çıkmasına sebep oluyor.
MYSQL5.0 KAYITSAYISI 1.SÜRE BAĞLANTILAR
MSDE2000 APPEND 5000KAYIT 5SN MSDAC
MSDE2000 APPEND 5000KAYIT 4SN ADO-OLEDB
FB2.0 APPEND 5000KAYIT 15 ADO-ODBC
FB2.0 APPEND 5000KAYIT 110 IBX
PG8.2 APPEND 5000KAYIT 24SN ADO-ODBC
MYSQL5.0 APPEND 5000KAYIT 76SN MYDAC

Testlerde;
mysql işlemci üzerinde çalışmıyor, hd üzerinde çalışıyor
postgresql işlemcinin tüm kaynaklarını kullanıyor
firebird işlemcinin %50sinden fazlasını kullanıyor
msdeişlemcinin %50sinden fazlasını kullanıyor

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

Mesaj gönderen kimene »

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
Cevapla