Neues in der Kategorie Performance-Optimierung

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

  • Anonym: Heute in einem Intranet irgendwo in Berlin: Es wurde bei weiter lesen
  • Alvar Freude: Da ist das leider nicht so ganz einfach, zumal ja weiter lesen
  • Dragan: Hey, mach doch das gleiche für das Paypal-Modul :) weiter lesen
  • pi: Und jetzt ist sogar schon perl 5.11 erschienen 8-) weiter lesen
  • Heiko J.: Murks - "mit einem _genaueren_ Blick" auf Padre sollte das weiter lesen
  • Heiko J.: Wie wär's mal mit einem Blick auf Padre? weiter lesen
  • Heiko Specht: Ich habs mal ein klein bisschen unter die Lupe genommen. weiter lesen
  • Anonym: Der Bundestag hat eine neue Seite, vielleicht magst du ja weiter lesen
  • Hans: Viele Danke für den nützlichen Tip, habe eben mich darüber weiter lesen
  • Egon Uhlenbach : Mittlerweile kann man diese Politik eh inne tonne kloppen. Wir weiter lesen

Über dieses Archiv

Diese Seite enthält aktuelle Einträge der Kategorie Performance-Optimierung.

Parrot ist die vorherige Kategorie.

Perl im Unternehmenseinsatz ist die nächste Kategorie.

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