AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Geschwindigkeit
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Geschwindigkeit

Ein Thema von Delix · begonnen am 29. Sep 2009 · letzter Beitrag vom 31. Mär 2010
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Delix

Registriert seit: 4. Mai 2004
Ort: Lippstadt
56 Beiträge
 
#1

Firebird Geschwindigkeit

  Alt 29. Sep 2009, 16:09
Datenbank: Firebird • Version: 1.5.5 • Zugriff über: Zeos
Hallo zusammen!

Ich habe ein Problem mit Firebird (1.5.5). Um die Geschindigkeit zu optimieren, haben wir ein kleines Testprogramm geschrieben, welches 1000 Select-Anweisungen ( ca. 50 Spalten, jeweils eine Zeile ) durchführt.

Auf einem Rechner benötigt das System 48 Sec., auf einem anderen, etwas leistungsstärkeren, dauert es 2 Min. 6 Sec. Beide Rechner greifen über das selbe Netz auf die selbe Datenbank zu. Der schnellere Rechner hat eine Netzwerkauslastung von ca. 10 %, der langsamere ca. 5 %. Das ist sogar logisch, aber was kann die Ursache sein. bzw. was ist zu tum?

Schöne Grüße
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#2

Re: Firebird Geschwindigkeit

  Alt 29. Sep 2009, 18:07
Versuche die einzelnen Komponenten zu separieren und dadurch herauszufinden, an welchen Prozess es überhaupt liegt.

Dazu würde ich als erstes auf die DB lokal per embedded Firebird zugreifen. Damit eleminierst Du den ganzen Netzwerk-Teil (Switch, priorierte Netze, Serverauslastung durch andere Prozesse etc.). Als nächstes würde ich mit einem Profiling- oder Monitoring- Tool die einzelnen Abfragen verfolgen. Nun kenne ich Zeos nicht, benutze bei IBO dafür die mitgelieferte Monitor- Komponente.

--
Andreas
Andreas
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Firebird Geschwindigkeit

  Alt 29. Sep 2009, 18:39
Nach jedem SELECT ein 'rollback' sollte die Performance drastisch steigern, auch wenn es sinnlos klingt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
neo4a

Registriert seit: 22. Jan 2007
Ort: Ingolstadt
362 Beiträge
 
Delphi XE2 Architect
 
#4

Re: Firebird Geschwindigkeit

  Alt 29. Sep 2009, 18:50
Zitat von alzaimar:
Nach jedem SELECT ein 'rollback' sollte die Performance drastisch steigern, auch wenn es sinnlos klingt.
Wenn das ernst gemeint war, interessiert mich der Hintergrund. Auch dann, wenn es nicht die Antwort auf die Frage ist, warum bei 2 Rechnern eine Aktion/Abfrage unterschiedlich lange dauert.

--
Andreas
Andreas
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Firebird Geschwindigkeit

  Alt 29. Sep 2009, 19:20
Sind die Statistiken in beiden Datenbanken identisch? Ggf. mal neu erstellen.

Gruß Borwin
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Firebird Geschwindigkeit

  Alt 29. Sep 2009, 20:11
Zitat von neo4a:
Wenn das ernst gemeint war, interessiert mich der Hintergrund. Auch dann, wenn es nicht die Antwort auf die Frage ist, warum bei 2 Rechnern eine Aktion/Abfrage unterschiedlich lange dauert.
Firbeird arbeitet so (soweit ich das verstanden habe), dass jede Aktion in einer eigenen TRansaktion gestartet wird. Jeder sieht einen 'Snapshot' des jeweiligen Datenbankzustandes. Wenn ich *kein* Rollback (nach einem SELECT!) ausführe, wird Firebird immer langsamer, weil es mit jedem SELECT eine neue Transaktionsumgebung mitpflegen muss.

Es könnte wirklich sein, das der 2.Test deshalb langsamer ist (Wenn Du ihn nach dem ersten Test ausführst). Du greifst doch immer auf den selben DB-Server zu, oder? Treiberversion ist auch die Gleiche?

Wenn Du Rollbacks einbaust und gleiche Treiber dein Eigen nennst, wird's schwierig. Wenn es viele Daten sind, könnte aber die CPU/RAM-Architektur eine Rolle spielen. Aber das ist wirklich unseriöses 'ins Blaue raten'.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#7

Re: Firebird Geschwindigkeit

  Alt 29. Sep 2009, 20:20
Hallo,

bzgl. Rollback vs. Commit ist es genau umgekehrt.

Lieber ein Commit als ein Rollback, wenn man es sich aussuchen kann (d.h. z.B. bei SELECTs, wo nichts geändert wird), da der OIT Counter per Definition die älteste nicht committete Transaktion ist. Die Engine ist zwar so clever, dass genau deswegen ein Rollback zu einem Commit gemacht wird, wenn das sicher ist.

An den Originalposter: Die DBs befinden sich auf einem Server oder (versehentlich) auf dem lokalen Rechner? Wie siehts mit Anzahl CPUs/Cores auf den Rechnern aus?
  Mit Zitat antworten Zitat
Delix

Registriert seit: 4. Mai 2004
Ort: Lippstadt
56 Beiträge
 
#8

Re: Firebird Geschwindigkeit

  Alt 30. Sep 2009, 07:26
Es geht hier rein um ein Testprogramm zum Ermitteln des Geschwindigkeitsverhaltens der einzelnen Komponenten PC, Netzwerk, Server. Hier muss also nichts optimiert werden. Es ist tatsächlich die selbe Datenbank auf dem selben Server. In der Datenbank wird eigens für den Test eine Tabelle neu angelegt und gefüllt. Alle haben immer die selben Bedingungen. Die SQL-Anweisungen sind so aufgebaut, das ohne schwierige Suche jeweils die Daten gefunden werden ( SELECT * FROM TABELLE WHERE ID=x ). Der Flaschenhals dürfte hier das Netz sein. Es geht tatsächlich rein um die Frage, wie kann der Test auf einem PC 3 mal schneller laufen als auf dem anderen?

Bin für jeden Tipp dankbar

Schöne Grüsse
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#9

Re: Firebird Geschwindigkeit

  Alt 30. Sep 2009, 07:38
Hi!

Gibt es vllt. Unterschiede in der Anbindung der Rechner?
100Mbit vs. 1000MBit?
Switch mehr dazwischen o.ä.?


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Delix

Registriert seit: 4. Mai 2004
Ort: Lippstadt
56 Beiträge
 
#10

Re: Firebird Geschwindigkeit

  Alt 30. Sep 2009, 07:47
Hallo!

Nein, kein Unterschied. Beide mit 100 MBit mit dem selben Umfeld. Auffällig ist halt, das ein Rechner 10% Netzlast hat, der andere nur 5 %. Beim Kopieren großer Dateien geht die Last voll hoch. Die Anzeige der Netzwerkauslastung wirkt wie gedeckelt - schön flach bei bei 5 %. Alle anderen Zugriffe gehen hoch.

Schöne Grüße
Hubert
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 05:16 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