I have a couple of general questions regarding cursors.
First, does something like this hold open one transaction, or is each fetch a separate transaction? As a dba I'm
wonderingif this would interfere with maintenance operations (xid rolling via autovacuum, attaching/detaching
partitions,etc).
declare cursname no scroll cursor without hold for ...
fetch forward 50000 from cursname
Secondly, on this particular thing (it's a three-table join, with one of those tables being very "wide", so there's
definitelya pg_toast table that's involved besides), it seems to perform pretty terribly. What are the advantages of
gatheringrecords this way compared to doing a series of queries with a range (record number >= x and record number <
y)?
Thanks for your help!
Natalie