boraldomaster wrote > > David Johnston wrote >> Your original examples only create the cursor and do not actually use it. >> You should be comparing how long it takes both examples to fetch the >> first 10 pages of records to get a meaningful comparison. It won't >> matter if the DECLARE only takes 3ms in the non-hold case if retrieving >> the first page of records take 2s. > Certainly - * > close all; > begin; > declare mycursor cursor for select * from z order by name; > fetch 10 from mycursor; > commit; * > - takes 3 ms all. > Each * > fetch 10 from mycursor * > takes 1-2 ms. > So this is perfectly optimized in transaction. And I wonder why isn't it > optimized for a whole session. I am sorry I cannot answer this kind of "why was it implemented in such-and-such way" question. Maybe someone from the core programming team will chime in. David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/How-to-create-a-cursor-that-is-independent-of-transactions-and-doesn-t-calculated-when-created-tp5762401p5762623.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general