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
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#1

Re: Firebird Geschwindigkeit

  Alt 11. Mär 2010, 08:56
Erste Tests - eine grosse Stored-Procedure, welche die Daten aus allen vier Tabellen raussucht und in einer riesigen Ergebnismenge zurückliefert ~ 2 Sekunden für die 10fache Menge an Daten. Nach der alten Logik wären das ca. 10000 Mal Query öffnen/schliessen. Wireshark zeigt grosse Blöcke mit "continuation data". Insgesamt werden für die 10fache Menge ca. 14 MByte an Rohdaten übers Netz geschubst! Wie überschlagen gerechnet waren es bei der kleineren Datenmenge schon über 30 MByte! Nicht benötigte Ausgabefelder, sind jetzt insgesamt 70 Stück, werden zusätzlich in der SP auch nach SUSPEND alle auf NULL gesetzt, damit man weiß welcher Datenblock gerade der notwendige ist.

Ausgabe wie folgt

SQL-Code:
AUSSENTABELLE mit Keys.... SUBTABLE1-FELDER... SUBTABLE2-FELDER... SUBTABLE3-FELDER
KEY..DATEN
KEY..NULL DATEN
KEY..NULL DATEN
KEY..NULL NULL DATEN
KEY..NULL NULL NULL DATEN
Nächster Datensatz
Hier ist allerdings noch nicht der Overhead in der Anwendung berücksichtigt die Daten in das Ausgabeformat zu verwandeln. Aber das stelle ich mir nicht mehr als so zeitkritisch vor, weil am Ende eine ca. 2 MByte grosse ASCII-Datei dabei herauskommt.

Die Netzlast geht bei dieser Abfrage übrigens von vorher ~0.5% auf jetzt ca. 7-8% hoch!

Das scheint hier tatsächlich die Lösung zu sein, statt vieler kleiner Abfragen - auch wenn sie prepared und parametrisiert sind - eine grosse Ergebnismenge! Das ständige Öffnen/Schliessen der inneren Queries resultiert in vielen, kleinen Netzpaketen. Jetzt mache ich mich mal dran und setze die Logik für die Ausgabe um.

Vielen Dank für Eure Geduld mit mir und für die Ideen und hilfreichen Tipps

Carsten
Carsten
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:39 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