AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Wie bekomme ich einen performanten Firebird?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bekomme ich einen performanten Firebird?

Ein Thema von Union · begonnen am 24. Apr 2014 · letzter Beitrag vom 28. Apr 2014
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#31

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 10:24
Nichts von alledem. Ich führe nur ein Script aus, das aus 8 Mio einzelnen Inserts besteht und nach jeweils 100 Inserts ein commit. Leider wird von FB ja (soweit ich weiss) die Syntax von meheren Value-Gruppen nicht untertstützt (Values (Values-1) [, (Values-n)]).


Es sind auch nicht sonderlich große Datensätze:
Code:
Insert into buchung values(147393, null, null, 23, 14299, '1', '35842011', 0, null, null, null, 0, null, '2005-05-02', null, 21, 145646, '2005-05-02', '17:46:55', 'ZUG', null, null, 'BWirth', null);
Insert into buchung values(147396, null, null, 23, 14302, '2', '35842011', 1, null, null, null, 0, null, '2005-05-02', null, 21, 145647, '2005-05-02', '18:03:21', 'ZUG', null, null, 'BWirth', null);
Insert into buchung values(147399, null, null, 23, 14302, '3', '35842011', 1, null, null, null, 0, null, '2005-05-02', null, 21, 145648, '2005-05-02', '18:03:42', 'ZUG', null, null, 'BWirth', null);
Momentan habe ich über gfix async und buffers 8000 eingestellt. Damit komme ich auf ca. 1 Mio records / h = ~ 300/s. Und je mehr es werden, desto länger dauert das commit, wobei dier Performance ab ca. 300000-500000 Sätzen schlagartig in den Keller geht. Die Übertragung der Daten ist aber schnell.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#32

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 10:29
... ab ca. 300000 wird es wieder ekelhaft langsam beim Commit.
Nach je 100 Datensätzen ein Commit? Probier's doch mal damit, nur alle 5000 DS ein Commit zu machen. In meinem Beispiel scheint das Insert mit vollkommen gleichmäßiger Geschwindigkeit zu verlaufen. Soweit ich das erkennen kann, ist da nach 1000 DS jeweils ein Commit Work; eingebaut. Die Geschwindigkeit lag bei mir bei 0,45 Sekunden für 1000 Datensätze, und zwar auf einem Win7/64 ohne SSD, Double Core Intel à 3 GHz und mit 4 GB Arbeitsspeicher. FB-Server:

Server Version: WI-V2.5.2.26540 Firebird 2.5
Server Implementation: Firebird/x86-64/Windows NT
Service Version: 2

Lade dir das Beispiel doch mal runter und probier's selber aus.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#33

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 10:34
Es ist auch nicht jedes 100er commit so langsam, nur ca. alle 4000 records.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
tsteinmaurer

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

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 10:37
Ohne einem parametrisierten INSERT oder über den bereits erwähnten Weg via EXTERNAL TABLE wirst du für Batch-Inserts nie eine akzeptable Performanz erreichen.

Nochmal zu meiner Frage: Welche Art von Commit verwendest du?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#35

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 12:08
K.A. ich habe ei fach in jeder 100. Zeile des scripts ein
Code:
commit;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#36

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 12:12
K.A. ich habe ei fach in jeder 100. Zeile des scripts ein
Code:
commit;
Wie langsam oder schnell läuft denn mein Beispiel auf deiner Kiste, wenn du das im Script-Editor von IbExpert ausführst?

Beispiel-Insert-Zeile:
Code:
INSERT INTO V_PLAETZE (P_LAND, P_PLZ, P_ORT, P_STATE, P_PROVINZ, P_KOMMUNE, P_LAT, P_LON, P_GENAU)
               VALUES ('Mexiko', '99312', 'El Vergel', 'Zacatecas', 'Jerez', 'Jerez (Jerez De Garcia Salinas)', 22.5, -103, 4);
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#37

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 12:17
Ich habe mir das heruntergeladen, danke schon einmal. Ausführen kann ich das aber erst heute Abend, da ich momentan noch den Buchungsimport am Laufen habe - der wird noch ca. 6h dauern, ist nach 2h gerade bei 2 Mio. Dein Beispielbestand hat allerdings auch nur 900k records. Aber es wird reichen zum Testen, denn der Einbruch erfolgt ja schon nach wenigen 100k.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
jsheyer

Registriert seit: 9. Jun 2005
Ort: Jüchen
90 Beiträge
 
Delphi 10.4 Sydney
 
#38

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 13:33
Hallo,

was mich wundert, wenn die DB im async Mode geht es erst einmal erheblich schneller, das es erst einmal schneller ist ist ja in Ordnung, trotzdem habe ich die Vermutung das der FB Server nicht schnell genug auf der Platte schreiben kann.
Ich hatte so einen Fall bei einem Kunden, super schnelle Platten, aber ab einer gewissen Menge an Daten ging die Plattenperfomance im Keller, konnte man auch mit einfachen Kopieren von Dateien nachstellen.
Auch schon Antiviren Software, etc geprüft? Das die evtl. Irgendetwas ausbremsen?

Gruß
Jörg
Jörg Heyer
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#39

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 16:30
Auf dem Server läuft keine. Wenn ich auf der WS ausschalte, gibt es keinerlei Unterscheid - hatte ich bereits probiert.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
220 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#40

AW: Wie bekomme ich einen performanten Firebird?

  Alt 25. Apr 2014, 19:09
ein bisschen mehr zur Hardware wäre nützlich

Raid ? wenn ja was für eines
ggf Stripset size ?
Ram Buffer auf dem Controller ? Größe ?

? ? ?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     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 14:26 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