Kann jemand vorschlagen, wie ich Batch-Abfragen in eine Apache Derby DB einfügen und gleichzeitig doppelte Einträge mit guter Leistung behandelt?Verlieren verbleibende Batched SQL-Abfragen, wenn Duplicate Key gefunden
Als letzten Ausweg, um Leistung mit der Fähigkeit zu versuchen, doppelte Schlüssel auf INSERT zu umgehen, entschied ich JDBC/Derby sagen mir, wenn eine Batch-Abfrage in einem doppelten Schlüssel führen würde, den Fehler abfangen und dann fortfahren mit den verbleibenden Batch-Abfragen.
Leider, sobald ein Fehler erkannt wird, scheint es, den gesamten Stapel von Abfragen zu löschen, was bedeutet, dass ich alle verbleibenden Datensätze verliere.
Dinge, die ich habe versucht:
- eine programmatische Abfrage durchführen, um zu bestimmen, ob der Eintrag bereits in dort. Dies wurde abgebrochen, da sich die Daten derzeit in einem Stapel befinden, sodass sie nicht erfasst werden.
- Verwenden Sie SQL-Abfragen nur INSERT, wenn der Datensatz nicht bereits vorhanden ist. Dies wurde aufgegeben, weil es zu einer schrecklichen INSERT-Leistung (fast 70%) führte.
- Lassen Sie die DB mir von doppelten Schlüsseln erzählen, fangen Sie den Fehler auf und fahren Sie fort, Stapel zu verarbeiten. Dies wird abgebrochen, da es "vergisst", dass weitere Abfragen im Stapel verarbeitet werden sollen.
Wenn nur Derby INSERT IGNORE unterstützt.
Dank
betreiben Sie Derby im Embedded-Modus oder als Netzwerkserver? – wero
Es wird im eingebetteten Modus ausgeführt. Es hat nur einen einzigen Benutzer - das ist die Anwendung.Es soll eine leichte temporäre Datenbank sein – jdie8274j