AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Performance: Interbase vs. Firebird
Thema durchsuchen
Ansicht
Themen-Optionen

Performance: Interbase vs. Firebird

Ein Thema von Nico80 · begonnen am 8. Okt 2007 · letzter Beitrag vom 28. Mai 2010
Antwort Antwort
Seite 1 von 3  1 23      
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#1

Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 12:23
Datenbank: Firebird/Interbase • Version: 2.0.3/7.1 • Zugriff über: IBX/FIBPlus
Hallo an alle Datenbank-Experten,

ich mache gerade Performance-Tests (Insert, Update, Select, Delete mit 1000 Records) mit den Datenbanken Interbase und Firebird.
Als Zugriffskomponeten habe ich bisher IBX und FIBPlus verwendet.

Ergebnis:
Interbase ist deutlich schneller als Firebird.
Sogar ein Remote-Zugriff ist bei Interbase schneller als lokal bei Firebird.

Besonders das Prepare-Statement bei Interbase bringt eine erhebliche Performance-Steigerung.

Folgende Komponenten benutze ich für DB-Aktionen:
IBX:
Insert, Update, Delete: TIBSQL
Select: TIBDataSet
FIBPlus:
Insert, Update, Delete: TpFIBQuery
Select: TpFIBDataSet

Hat jemand gleiche oder andere Erfahrungswerte?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 13:50
http://ibdeveloper.com/tests/
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 15:42
Naja laut deren Testergebnisse ist Firebird schneller
Das ist doch sehr merkwürdig...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 15:46
Dort wird aber ein standardisierter Test verwendet und höchstwahrscheinlich nicht aus Delphi heraus.
Es könnte zusätzlich auch mit den Komponenten zusammenhängen. Welches ODS hatten deine verwendeten Datenbanken?
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 15:58
Was meinst du mit ODS der Datenbanken?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 16:00
ODS = On Disc Structure. Ist das Format der Datenbankdateistruktur. FB kann seine Vorteile nur ausspielen, wenn die passende neure ODS Version vorliegt. Ältere IB6-Datenbanken werden von FB nicht automatisch angepasst.
Markus Kinzler
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 16:08
Ich habe für meinen Test 2 neue Datenbanken angelegt.
Eine Datenbank besteht auch nur aus einer Tabelle.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.438 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 16:11
also das thema würde mich auch mal interessieren und zwar

gibt es wo ein programm, mit dem ich einenleistungsindex der verschiedenen Datenbanken machen kann? - aber einen, der nicht einfach ein SQL Script abarbeitet, sondern einen, der von verschiedenen threads abfragen an die Datenbank schickt?

hintergrund ist, möchte gerne wissen, wieviel es bringt
  • multicore - Super Server vs ClassicServer bei FB
  • 2 GB, 3 GB, 4 GB RAM - was bringts
  • XP, Server 2000, Server 2003
  • 15k Harddisk <-> 10k Harddisk
  • ....

einfach zu sehen, wo kann ich bessere komponenten reinstecken, und was bringt das dann wirklich in einem stresstest.

Bin schon am überlegen, mir ein eigenes testprogramm zu erzeugen, am besten wäre es dann natürlich, wenn der server dann nicht isntalliert werden muß, sondern einfach als exe im selben dir gestartet wird (sollte doch gehen bei FB oder?)
und dieser mit ein paar unterschiedlichen Konfigurationen dann die testscripts ablaufen lässt

hat schon mal wer was in die richtung gemacht?

PS.: habs in diesen thread dazugeostet, da ich schon länger mit dem gedanken spiele, und durch diesen thread wieder dran denke ...
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
671 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Performance: Interbase vs. Firebird

  Alt 8. Okt 2007, 20:04
meine Tests basieren auf Delphi und Fibplus weil das die Plattform ist mit der IBExpert programmiert ist.
Zu einzelnen connections kann aich nichts sagen, aber auf Basis der IBExpert Demo DB dauert das erzeugen
und verarbeiten der prozedur initall mit dem parameter 10000:
auf ib75 und ib2007: ca 60 Sekunden
auf fb15: ca 50 Sekunden
auf fb20: ca 30 Sekunden
Das sind ca 800000 genau reproduzierbare Operationen, gut verteilt auf select, insert, update und delete.

Die Prozedur kann man mit wenigen Änderungen auch als ibeblock ablaufen lassen, dann wird jede Operation
gesonderte per Client API ausgeführt, also wie ein ganz normales Delphiprogramm das ohne Stored Procedure
auf dem Server auch machen würde.

auf ib75 und ib2007: ca 230 Sekunden
auf fb15: ca 210 Sekunden
auf fb20: ca 210 Sekunden
auf fb21: ca 140 Sekunden

Das war immer die gleiche Hardware und die DB wurde vor dem Test neu erstellt. Einen Geschwindigkeitsvorteil
kann ich aufgrund dieses Tests nicht erkennen, heisst aber nicht das andere Tests nicht Vorteile zeigen
können.

Gruß
Holger
www.firebird-conference.com
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Nico80

Registriert seit: 28. Jun 2007
63 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: Performance: Interbase vs. Firebird

  Alt 9. Okt 2007, 09:50
Leider kann ich das überhaupt nicht nachvollziehen.

Poste mal mein Programmcode für einen Update mit TpFIBQuery...
die Prozedur mit 1000 mal aufgerufen...

Delphi-Quellcode:
  DataRec.LastUpdate := Now;
  FQueryUpdate.Transaction.StartTransaction;
  if (not FQueryUpdate.Prepared) then begin
    FQueryUpdate.SQL.Text := 'UPDATE table_test SET name=:name, number=:number, lastupdate=:lastupdate WHERE id=:id';
    FQueryUpdate.Prepare;
  end;
  FQueryUpdate.ParamByName('id').AsInteger := DataRec.Id;
  FQueryUpdate.ParamByName('name').AsString := DataRec.Name;
  FQueryUpdate.ParamByName('number').AsInteger := DataRec.Id;
  FQueryUpdate.ParamByName('lastupdate').AsDateTime := DataRec.LastUpdate;
  FQueryUpdate.ExecQuery;
  FQueryUpdate.Commit;
Mache ich rigendwas falsch?
Zeiten bei 1000 Datensätzen:
Interbase: ~ 224 ms
Firebird: ~ 1400 ms
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz