Neues in der Kategorie Datenbanken

Mit PostgreSQL und DBI sowie DBD::Pg ist es möglich, SQL-Queries im Hintergrund asynchron laufen zu lassen – und währenddessen in Perl weitere Berechnungen anzustellen, anstatt nur auf die Daten zu warten. Insbesondere bei Multi-Core-CPUs oder einer Trennung von Datenbankserver und Anwendung ist dies eine sehr praktische Sache.

Und einfach ist es obendrein!

Bei dem jeweiligen Aufruf von $dbh->do, $dbh->prepare oder $dbh->prepare_cached muss nur das Attribut PG_ASYNC hinzugefügt werden. Besonders praktisch ist das bei INSERT und UPDATE Queries, wenn also keine Rückgabewerte ausgewertet werden müssen, da kann man im neuen Query einfach noch auf den Rest des alten warten:

use DBD::Pg qw(:async);    # Async-Konstanten einbinden

# ... und später Query vorbereiten:

my $sth = $self->dbh->prepare( "INSERT INTO table ...", 
          { pg_async => PG_ASYNC + PG_OLDQUERY_WAIT } );

# ... und dann zum Beispiel in einer Schleife aufrufen
while ( my @parameter = calculate_next_insert() )
    {
    $sth->execute( @parameter );
    }

# ...

Wenn man also zwischen mehreren INSERT-Statements noch Eingabedaten berechnen muss, kann dies Zeit sparen. Vor weiteren Queries oder dem Commit sollte man dann noch mit $dbh->pg_result() auf das Ergebnis des letzten asynchronen Queries warten.

Mehr Beispiele und die Darstellung aller Features gibt es in der DBD::Pg Dokumentation.

 

Aktuelle Kommentare

  • Niels Dettenbach: ...schade eigentlich, das es PyPerl nicht mehr wirklich gibt. Zwar weiter lesen
  • vTasker: Was ist das denn für ein MIST? Der Artikel ist weiter lesen
  • Alvar Freude: Nein, Susan, das ist falsch. XING wurde von der epublica weiter lesen
  • Susan: Hi, das ist eine komplett falsche Aussage. XING laeuft auf weiter lesen
  • Alvar Freude: Zu E.Doerr: Ich fange mal mit dem zweiten Punkt, dem weiter lesen
  • E.Doerr: Der Vergleich ist ganz interessant - aber wenn ich mich weiter lesen
  • Alvar: Die Universitäten sind sicherlich ein wichtiger Ansatzpunkt. Diese sind da weiter lesen
  • Ingmar Drewing: Das Problem - wenn man es denn so nennen will weiter lesen
  • Alvar Freude: Gut wäre auch, wenn sich mehr gestandene Entwickler für Perl weiter lesen
  • Martin Seibert: Ich wäre auch stark für den Nachwuchs! :-) weiter lesen

Über dieses Archiv

Diese Seite enthält aktuelle Einträge der Kategorie Datenbanken.

Bücher/Literatur ist die vorherige Kategorie.

Diverses ist die nächste Kategorie.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.