EXPLAIN ANALYZE über mehere Zeilen

Hey All,
ich möchte testen ob ein Update mit “WITH … UPDATE” schneller ist als ein Update mit BEGIN UPDATE, UPDATE, … COMMIT"
Im ersten Fall schreibe ich einfach EXPLAIN ANALYZE WITH … UPDATE.

Kann ich ein EXPLAIN ANALYZE über mehere Queries durchführen??

Dank und Gruß Ronny

Nein, explain geht immer nur für ein Statement.

Aber durch eine explizite Transaktionen, wird das Statement weder langsamer noch schneller - die Arbeit die getan werden muss ist immer die gleiche.

Meep. Wenn man mehrere einzelne Statements zu einer Transaktion zusammenfaßt wird dies schneller gehen als wenn jedes einzelne Statement jeweils in seiner eigenen Transaktion läuft. Das könnte bei der Antwort von @castorp evtl. falsch rüber kommen.
Eine Bündelung via WITH könnte etwas geringe Planungszeiten haben, man muß aber aufpassen: WITH-Abfragen sind teilweise krasse Performance-Killer. Insbesondere in der Form: with x as (select <sehr große Datenmenge> select from x where … mit einer starken Where-Condition, wo nur noch wenige Datensätze übrig bleiben. Die Where-Condition SCHLÄGT NICHT auf die WITH-Abfrage durch (was bei einem Subselect passieren würde).

Ciatronical erwähnt “ein UPDATE” deswegen bin ich davon ausgegangen, dass es um den Unterschied zwischen:

update foo 
   set bar = 42
where ...;

und

begin;
update foo 
   set bar = 42
where ...;
commit;

geht.

Wenn natürlich in einer Transaktion mehrere UPDATEs (bzw. DML Statements) zusammengefasst werden, dann ja, dann ist das ziemlich sicher schneller als viele kleine Transaktionen.

Das ändert aber nichts an der Tatsache, dass EXPLAIN immer nur für ein Statement, nicht für mehrere Statements geht.

Ok, danke euch.