XML-schreiben aus ResultSet dauert zu lange

Status
Nicht offen für weitere Antworten.
K

KartoffelKiffer

Gast
Hallo,

ich benutze den DOM-Parser um mir ein XML-Dokument aus einem ResultSet zu schreiben.

Zuerst generiere ich einen DocumentBuilder, der an das Document ein MainElement und mehrere ChildElemente anhängt. In das ChildElement werden dann die Daten aus einem ResultSet geschrieben. In etwa so zu verstehen:

Code:
<MainElement>
   <ChildElement>
      <Spalte1>Inhalt1.1 / Spalte 1, Zeile 1</Spalte1>
      <Spalte2>Inhalt1.2 / Spalte 2, Zeile 1</Spalte2>
   </ChildElement>
   <ChildElement>
      <Spalte1>Inhalt2.1 / Spalte 1, Zeile 2</Spalte1>
      <Spalte2>Inhalt2.2 / Spalte 2, Zeile 2</Spalte2>
   </ChildElement>
</MainElement>

Wobei dann Spalte1 und Spalte2 die columnNames aus dem ResultSet sind.
Code:
Element node = doc.createElement(columnName);

Dieser Knoten wird in einer Schleife durchlaufen, die solange das Document vollschreibt, bis auch der letzte Datensatz aus dem ResultSet abgearbeitet ist.

Ist also ein neuer Datensatz in dem ResultSet angebrochen, schreibt er auch ein neues ChildElement, sodass ich später ein MainElement habe, viele ChildElemente und noch mehr SpaltenElemente mit ihrem Inhalt.

Jetzt habe ich nun ein ResultSet, das 62.000 Datensätze beinhaltet. Die ganze Prozedur dauert exakte eine Minute und 24 Sekunden. Für einen Anwender, der "nur mal eben" etwas sehen möchte, ist das natürlich zuviel des Guten. Das Befüllen des ResultSet´ dauert nur wenige Millisekunden, daran liegt es also nicht (ist eine Abfrage aus der Datenbank).

Das Document, welches vom DOM generiert wird, schreibe ich lediglich mittels BufferedWriter in ein File. Das File im Endeffekt ist dann etwas über 5MB groß, und umfasst ca. 250.000 Zeilen.

Was dauert in meinem Programm denn nun solange? Das Erstellen des Dokumentes (Document, von DOM generiert), mit all seinen Elementen, oder das Schreiben dieses Documents in eine Datei?

Hat jemand von Euch schonmal mit einem ähnlichen Datenaufkommen gerarbeitet, und weiß evtl. wie es besser zu handlen wäre? Ich bin über jegliche Hilfe sehr dankbar.




Mfg Tom
 
K

KartoffelKiffer

Gast
//Edit: Um mein Document aus dem DocumentBuilder zu erhalten, habe ich dieses Tutorial genutzt. Das Document, wie es entsteht, schreibe ich wie erwähnt per BufferedWriter in eine Datei.
 
R

Roar

Gast
:autsch: wie schreibst du das dokument? schreibst du selber oder benutzt du die dafür vorgesehenen klassen? :roll:
schau dir auch mal stax an.
 
K

KartoffelKiffer

Gast
Siehe ein Beitrag über deinem, direkt editieren konnte ich leider nicht.



Mfg Tom
 
R

Roar

Gast
benutz mal javax.xml.transform.Transformer, oder direkt stax, weil erst aus dem ganzen rülpz nen dom generieren und dann schreiben is auch bissl homo.
 
K

KartoffelKiffer

Gast
Du gehst also auch da von aus, dass der Knackpunkt bei der Sache im Generieren des XML-Documents liegt? Das Schreiben von 250.000 Zeilen mit im Schnitt etwa 30 Zeichen pro Zeile nimmt nicht soviel Zeit in Anspruch, dass es sich in meinem Programm bemerkbar macht?



Mfg Tom
 
R

Roar

Gast
ich weiß nich wo dein programm soviel zeit verbraucht, schau doch nach :roll:
 
K

KartoffelKiffer

Gast
Hallo,

habe heute ein wenig mit verschiedenen Schreibverfahren durchgetestet. Da tut sich also sogut wie garnichts. Es muss also wirklich am Verfahren liegen, wie ich mein Document erstelle (DOM).

Ist vom Prinzip her das Erstellen meines XML´s nicht am Schnellsten mit dem DOM? Ich erstelle ein MainElement, ein ChildElement, hänge an was ich benötige, erstelle ein neues ChildElement usw. Klingt für mich (in dem Gebiet völliger Laie) im Prinzip eigentlich sehr gut. Wären andere Methoden evtl. doch sinnvoller für mein Vorhaben? Wenn DOM jetzt tatsächlich das Fixeste für die Prozedur ist, muss sich der Anwender halt mit diesen Wartezeiten zufrieden geben; ich kann aber auch sagen, dass ich alles versucht hätte.



Mfg Tom
 
K

KartoffelKiffer

Gast
Hallo,

vielen Dank für die Hilfe; SAX ist exakt das Richtige für den Job. Ist zig mal so schnell fertig, wie zuvor mit dem DOM.



Mfg Tom
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Int-Werte in XML-Datei schreiben (DOM) XML & JSON 2
W XPath schreiben XML & JSON 1
N Java XML schreiben funktioniert nicht XML & JSON 1
L Mit Hilfe von POI eine Tabelle ohne Rahmen in Word schreiben XML & JSON 2
J XML als stream schreiben? XML & JSON 2
M JAXB: automatisches Groß schreiben Property XML & JSON 9
L Datenstruktur in XML-File schreiben XML & JSON 2
G DXF-File schreiben XML & JSON 17
P Komfortabel XML Dokumente schreiben und lesen XML & JSON 6
Maxim6394 Lesen/Schreiben von XML Datei XML & JSON 9
B Validierung nur beim einlesen oder auch beim schreiben? XML & JSON 4
S XML lesen und schreiben XML & JSON 2
C DOM: Attribute nicht in alphabetischer Reihenfolge schreiben XML & JSON 3
T Schreiben einer XML XML & JSON 8
J wert IN einem tag einlesen/schreiben XML & JSON 4
K JAXB: Klassen mit Annotation Lesen/Schreiben XML XML & JSON 3
K '&' in xml schreiben XML & JSON 2
G Problem beim schreiben von XML in eine File XML & JSON 2
sylo DOM Document in XML Datei schreiben XML & JSON 5
J xmlencoder Zustände einer Bean schreiben XML & JSON 3
B eigentlich einfach nur XML schreiben XML & JSON 3
L Objekt Serialisierung: Schreiben aller Attribute erzwingen XML & JSON 5
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
M DOM, Werte mit setAttribute in XML schreiben XML & JSON 3
B XML einlesen und in Datenbank schreiben XML & JSON 1
D Tabs/Einrückungen der XML-Elemente gehen beim Schreiben verloren XML & JSON 5
J XML lesen schreiben XML & JSON 7
T Xml lesen und in .txt zeilenweise schreiben XML & JSON 4
J XML - schreiben und einlesen (Schema) XML & JSON 14
L Einfaches XML Lesen und Schreiben XML & JSON 4
O OpenDocument-Tabelle mit Java lesen und schreiben XML & JSON 3
G Wie Attribute aus XML in ein Model schreiben (StAX)? XML & JSON 7
G Mit JAXP in eine Datei schreiben XML & JSON 2
R XML-Datei schreiben - InstantiationException XML & JSON 2
Z DOM: Attribute in Knoten schreiben XML & JSON 2
S XMl Dateien in Java schreiben XML & JSON 4
E ResultSet als XML Datei speichern XML & JSON 7

Ähnliche Java Themen

Neue Themen


Oben