![]() |
Datenbank: Firebird • Version: 1.5.5 • Zugriff über: Zeos
Firebird Geschwindigkeit
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 |
Re: Firebird Geschwindigkeit
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 |
Re: Firebird Geschwindigkeit
Nach jedem SELECT ein 'rollback' sollte die Performance drastisch steigern, auch wenn es sinnlos klingt.
|
Re: Firebird Geschwindigkeit
Zitat:
-- Andreas |
Re: Firebird Geschwindigkeit
Sind die Statistiken in beiden Datenbanken identisch? Ggf. mal neu erstellen.
Gruß Borwin |
Re: Firebird Geschwindigkeit
Zitat:
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'. |
Re: Firebird Geschwindigkeit
Hallo,
bzgl. Rollback vs. Commit ist es genau umgekehrt. :-D 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? |
Re: Firebird Geschwindigkeit
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 |
Re: Firebird Geschwindigkeit
Hi!
Gibt es vllt. Unterschiede in der Anbindung der Rechner? 100Mbit vs. 1000MBit? Switch mehr dazwischen o.ä.? Grüße, Frederic |
Re: Firebird Geschwindigkeit
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz