From: Oscar Tuscon <obtuse@bmwe30.net>
To: pgsql-general@postgresql.org
Subject: Sequence question
Date: Wed, 4 Aug 2004 16:20:18 -0700 (PDT)
Message-ID: <20040804232018.DD88F394A@sitemail.everyone.net> (raw)
I'm looking at ways to get batches of sequence values s faster. I don't want to set cache or increment to a large number for a variety of reasons. I need to grab id's in batches of varying numbers at various times, from 1 to several thousand at once.
Doing it 1 at a time works, but more time goes into it than I'd like. I tried setting cache_value high but the database roundtrips were eating more time that I wanted to see; I only saw a 25% improvement in average time.
SO... is the following approach safe? That is, will this be atomic, or is there a possibility that another connection could squeeze in a select nextval() between the select nextval() and the setval below?
If it's safe I'd do this and take the sequences as the new currval - #I asked for (1500 or whatever).
mydb=# select setval('my_id_seq', (select nextval('my_id_seq')+1500));
Thanks
Oscar T
_____________________________________________________________
The BMW E30 community on the web---> http://www.bmwe30.net
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-general@postgresql.org
Cc: obtuse@bmwe30.net
Subject: Re: Sequence question
In-Reply-To: <20040804232018.DD88F394A@sitemail.everyone.net>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox