Frage zu UPDATE ... IN ('...')

Hallo Forum,

wie sieht es mit dem Laufzeitverhalten einer solchen Transaktion aus?

BEGIN;
UPDATE t_wetterstation SET datengeliefert=0;
UPDATE t_wetterstation SET datengeliefert=1 WHERE station IN (<Liste>);
COMMIT;

Der Hintergrund ist, dass bestimmte Wetterstationen zum Erfassungszeitpunkt Daten liefern und andere nicht. Da ich vorher nicht weiß, welche Station Daten vorrätig hat, wird das per Perl-Skript in einer Schleife erfasst. Die ermittelten Station werden in der Liste $liste zusammen gefasst und per

$dbh->do("UPDATE t_wetterstation SET datengeliefert=1 WHERE station IN (" . $liste . ")");

an die Datenbank geliefert. In der Tabelle t_wetterstation sind etwa 10.000 Stationen gespeichert.

Danke für Eure Einschätzungen.

JueDan

Welche Antwort hättest Du gerne?

Der Hintergrund ist, dass bestimmte Wetterstationen zum Erfassungszeitpunkt Daten liefern und andere nicht. Da ich vorher nicht weiß, welche Station Daten vorrätig hat, wird das per Perl-Skript in einer Schleife erfasst. Die ermittelten Station werden in der Liste $liste zusammen gefasst und per

$dbh->do(“UPDATE t_wetterstation SET datengeliefert=1 WHERE station IN (” . $liste . “)”);

>
> an die Datenbank geliefert. In der Tabelle > _t_wetterstation_ > sind etwa 10.000 Stationen gespeichert.
>
> Danke für Eure Einschätzungen.
>
> JueDan

Du hast N Stationen, die hast Du in einer Stammdatentabelle gespeichert, oder? Diese liefern regelmäßig (nun ja, mehr oder weniger...) Daten. Vermutlich speicherst Du diese Daten in einer separaten tabelle, so mit Stations-ID, Timestamp und Meßwert, oder?

Warum willst Du in der Stammdatentabelle immer mitführen, wie der letzte Status war? Das wird sehr, sehr schnell zu massiv vielen Updates dieses Stammdaten-Tabelle führen.

Falls ich Dein Konzept und Deine Idee so richtig verstanden habe, würde ich an deiner Stelle das überdenken.

Danke für die Antwort.
Ich habe das jetzt komplett umgebaut und konnte damit die “UPDATE … IN” Orgie verzichten und das ganze System ist schlanker geworden.
Manchmal steht man halt trotz ausgiebiger Planung im Wald.

Macht nix.

es hat mich an einen sehr fatalen Fehler eines unseren Kunden erinnert, etwa ähnlich Anzahl Meßstationen, die aber z.T. pro Sekunde eine Handvoll Datensätze liefern.