How efficient is select currval?

Started by Chris Velevitchover 20 years ago2 messagesgeneral
Jump to latest
#1Chris Velevitch
chris.velevitch@gmail.com

If I insert a record into a table with a serial primary key, does
select currval fetch it from the database or does it get it from
within memory?

If it fetches it from the database, should I use a Serializable
transaction or just a read committed transaction?

Chris
--
Chris Velevitch
Manager - Sydney Flash Platform Developers Group
www.flashdev.org.au

#2Richard Huxton
dev@archonet.com
In reply to: Chris Velevitch (#1)
Re: How efficient is select currval?

Chris Velevitch wrote:

If I insert a record into a table with a serial primary key, does
select currval fetch it from the database or does it get it from
within memory?

If it fetches it from the database, should I use a Serializable
transaction or just a read committed transaction?

You can control the level of caching, but you'll have to be pushing it
for the serial to be a large part of your overheads. Each sequence is a
small table - you can do "SELECT * FROM my_seq" and see the "insides".

You don't need to worry about transaction isolation for sequences, you
are always guaranteed a new value. The price you pay for this is that
there might be gaps in the series of values you get.

--
Richard Huxton
Archonet Ltd