![]() |
Re: FireBird - Too many Savepoints?
Zitat:
Zeos ist halt nicht die erste Wahl. |
Re: FireBird - Too many Savepoints?
Ich habe z.b. eine Abfrage die mir die letzten N Datensätze ermitteln soll, bei mySQL sähe das wie folgt aus.
SQL-Code:
48721 ist das Ergebnis aus der Gesamt Anzahl der Datensätze minus der gewünschten 40 Datensätze
SELECT * FROM TAB ORDER BY Datum,DevNo ASC LIMIT 48721,40
dabei braucht diese Abfrage ca. 3-4 sekunden. Bei Firebird sieht die Abfrage wie folgt aus und benötigt dort ca. 12-13 sekunden.
SQL-Code:
SELECT FIRST 40 SKIP 48721 * FROM TAB ORDER BY Datum,DevNo ASC
Hmm was wäre den anstelle von Zeos deiner Meinung nach die erste Wahl?! |
Re: FireBird - Too many Savepoints?
Wie sieht es mit Indizes aus?
Schneller als Zeos ist IBDAC, FIBplus, IBObjects, ... |
Re: FireBird - Too many Savepoints?
Zitat:
|
Re: FireBird - Too many Savepoints?
Der Tabelle. Existiert ein Index auf die Felder Datum und DevNo?
|
Re: FireBird - Too many Savepoints?
Nein, das habe ich bisher nicht gemacht müßte ich mir anschauen wie ich diese Felder indiziert bekomme.
|
Re: FireBird - Too many Savepoints?
Zitat:
Wie sehen solche Vorgänge nun im Programm aus ? 1. Die Lieferung wird eingegeben. Sobald fertig, wird die Rückgabe eingegeben. Hierbei wurde der falsche Schein erwischt. Jetzt gibt es zwei Mölichkeiten : 1. Alles rückgängig machen, was bedeutet, auch die 100 Eingaben der neuen Bestellung neu machen zu müssen. Dabei ist auch vorausgesetzt, dass man bei jedem zusammenhängenden Vorgang zumindest eine Transaktion startet. Ansonsten kann auch die Arbeit eines ganzen Tages weg sein. 2. Man setzt nach der Eingabe der neuen Bestellung einen Savepoint. Wie gesagt, falschen Rücknahmeschein erwischt und das fällt erst nach Eingabe von 100 Rückgaben auf. 8) Dann mache ich eben ein RollBackToSavePoint und habe zumindest das neueingeben der Bestellung, die richtig war gespart. Im DB-Bereich hat schon alles einen gewissen Sinn, keine Angst. :mrgreen: Zitat:
|
Re: FireBird - Too many Savepoints?
Ich habe eine Anwendung die Messdaten Verwalten soll, d.h. Messungen werden von einer anderen Anwendung im Netzwerk
gespeichert, da jede Messung in einer sparaten Datei gespeichert wird, ist die suche nach einer oder mehren Messungen sehr Zeitaufwending. Den wenn ich z.b. über 80.000 Messungen (Dateien) vorliegen habe, muß ich jede Datei öffnen schauen ob sie den Suchkritierien entspricht und dann entsprechend in meiner Anwendung auflisten. Diesen vorgang wollte ich mir ersparen indem ich eine Datenbank einsetze in der die Messungen stehen, dort ließe sich ja viel schneller suchen. Da ich unabhängig und flexibel bleiben möchte dachte ich es macht am meisten Sinn eine Embedded Datenbank einzusetzen, weil auf dem Anwender Rechner nichts mehr installiert werden muß außer die eine Anwendung und keinen Datenbank Server etc. Warum man jetzt FireBird Embedded nicht für die Entwicklung nutzen sollte, verstehe ich nicht. Ich lerne in der Fahrschule ja auch mit einem Auto das Autofahren und nicht mit einem Roller. Das Prinzip von den Transaktionen habe ich denke ich einigermaßen Verstanden, ich kann diverse aktionen ausführen und erst wenn klar ist das alles in ordnung ist kann ich dann die aktionen bestätigen "Commit" oder ein "Rollback" durchführen um die Änderungen rückgängig zumachen. Also müßte ich vor einem Insert einen "Savepoint" setzen dann das Insert ausführen und dann muß ich das jetzt noch mit einem "Commit" bestätigen!? Wieso reicht es da nicht aus eine einfache "Insert" Anweisung auszuführen. In der Anwendung gibt es eh nur eine Tabelle in einer Datenbank, es ist ja nicht so das ich in Tabelle X etwas einfüge und wenn in Tabelle Y etwas schief geht das ich den Eintrag aus X wieder rückgängig machen will, das verstehe ich unter Transaktionen. Mein Problem ist halt ich muß ja irgendwie Anfangen das Problem umzusetzen und wenn man im Internet stöbert findet man hunderte von Datenbank Systemen und hunderte Möglichkeiten auf diese zuzugreifen, wie soll man als Laie sofort und ohne Studium aller Dokumentationen herrausfinden was man benötigt also greift man auf das zu was man kennt oder wovon man schon gehört hat und probiert damit aus das vorhandne Problem zu lösen. |
Re: FireBird - Too many Savepoints?
Zitat:
Zitat:
|
Re: FireBird - Too many Savepoints?
Sieht so aus, als hätteste Transaktionen immer noch nicht ganz gerafft.
Zitat:
Und die Fahrschule ist wirklich hervorragendes Beispiel. Du lernst Autofahren mit einem embedded Einrad. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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 by Thomas Breitkreuz