Andreas Korthaus: /PERL Performance-Frage - Parsen

Beitrag lesen

Hi Michael!

wie ist die Wahrscheinlichkeit für diese beiden Ereignisse?

Das ist sehr verschieden. Normalerweise liegt der Schwepunkt deutlich bei den Updates, aber manchmal wird eine größere Anzahl an Datensätzen hintereinander angelegt, wodurch das Verhältnis dann auch mal kippen kann.

Ich tippe, es geht schneller, auf Verdacht das wahrscheinlichere Ereignis zu wählen und ggf. eine Fehlerbehandlung durchzuführen, also den anderen Befehl in diesem Fall auch noch hinterher zu schießen (der erste hatte dann ja keine Wirkung).

Aber wie stellst Du Dir das vor? Nur mal so angenommen ich nehme jetzt die UPDATES als Standard, dann generiere ich rstmal ein UPdate und führe  es aus. Wenn der Datensatz nicht vorhanden war, erhalte ich von mysql einen Fehler und kann dann ein INSERT generieren und ausführen, oder wie stellst Du Dir das vor?
Aber ich hatte ja überlegt das Statement nicht in jedem Schleifendurchlauf einzelnd auszuführen, sondern alle in einen String schreiben und alle komplett an das Kommandozeilentool zu schicken. Da ist es ja dann schon zu spät für sowas, oder? Aber ich muß noch testen was genau wieviel Zeit kostet, leider hänge ich noch an der Übertragung der Daten als binären gz-String, wenn das denn endlich mal funktioniert werde ich mal eine Testversion umsetzen und ein wenig probieren!

Nur wenn die Wahrscheinlichkeit zwischen 30 und 70% liegt, dürfte das vorherige SELECT schneller sein.

Ich hatte erst überlegt die Tabelle vorher abzufragen und alle notwendigen Daten in einen Array zu schreiben, um mir die vielen DB-Zugriffe zu sparen. Aber ich müßte dann irgendwie die Datensätze filtern, damit der Zugriff und der entstehende nicht unnötig groß bzw. zu groß werden kann. Evtl. könnte ich es auch anders herum machen und die geparsten Daten kopmplett in einen Array schreiben und dann die DB entsprechend abfragen, danach entsprechend INSERTs und UPDATEs generieren und alle Zusammen an mysql(batch) schicken, oder was meinst Du dazu?

Viele Grüße
Andreas