Mladen, If the session doesn't start a transaction, I don't see how this can work. First, multiple sessions can find the same SCN, no matter what kind of SCN you're talking about. Secondly, v$datafile.last_change# is set to null unless the datafile is offline.
If each session has its own transaction, i.e. not just a regular query, then their own SCN's at the time the transaction started as shown in v$transaction may be used as a uniqur identifier. But the session can't use a savepoint and hope that has another number in v$transaction; that's not a common requirement though. Yong Huang --- Mladen Gogala <[EMAIL PROTECTED]> wrote: > Well, if the commit is not too frequent, one natural way > of generating primary key would be select max(last_change#) from v$datafile; > These numbers are guaranteed to be unique. As DBWR wakes up every 3 seconds, > the intervals between commit should be at least 3 seconds. As you're very > well > aware, this is the natural mechanism that ensures that any change is properly > > enumerated and, thus, the best and most generic primary key. I understand > that > someone might doubt this mechanism as I would never even dream of using it, > but SCN is the thing that comes naturally. Alternatively, one could produce > SCN > from V$TRANSACTION (base + wrap). > > > On 11/06/2003 12:54:38 PM, Cary Millsap wrote: > > The implementations I've seen all did SELECT...FOR UPDATE. > > Works. > > Doesn't scale. > > > > > > Cary Millsap > > Hotsos Enterprises, Ltd. > > http://www.hotsos.com > > > > Upcoming events: > > - Performance Diagnosis 101: 11/19 Sydney > > - SQL Optimization 101: 12/8-12 Dallas > > - Hotsos Symposium 2004: March 7-10 Dallas > > - Visit www.hotsos.com for schedule details... > > > > > > -----Original Message----- > > Jonathan Gennick > > Sent: Thursday, November 06, 2003 7:59 AM > > To: Multiple recipients of list ORACLE-L > > > > Wednesday, November 5, 2003, 9:24:41 AM, Hemant K Chitale > > ([EMAIL PROTECTED]) wrote: > > HKC> 1. Hit a table that keeps a counter. > > HKC> Used to be a mechanism in the Oracle5 days [If I remember > > correctly, > > HKC> Sequences came in Oracle6]. Issues were with locking the single > > HKC> record used as the generator or scanning for the max(value) of the > > HKC> key. > > HKC> Not quite sure I understand how you encountered concurrency issues, > > though. > > > > My concurrency issues probably boil down to the locking > > business. The app I'm thinking of originally did something > > like: > > > > SELECT counter INTO :1 > > FROM counter_table > > WHERE counter_name = 'table name'; > > > > ...some app code goes here... > > > > UPDATE counter_table > > SET counter := counter+1 > > WHERE counter_name = 'table name'; > > > > Well, it all worked fine in single-user mode<grin>. But it > > was easy enough for me to sit down in front of two > > computers, create two new records, press SAVE at the same > > time, and cause two sessions to grab the same key value, > > because they would both issue the SELECT before either one > > got around to the UPDATE. I couldn't screw things up > > consistently, but just by hitting the SAVE button at the > > same time I could screw things up often enough to make the > > problem obvious. > > > > Maybe there's a way to lock the table, to make the above > > approach work. In my case, I didn't bother trying to find > > that solution. Once I did my little demo, it was easy enough > > to convince the project manager that we should switch to > > using Oracle sequences. > > > > Best regards, > > > > Jonathan Gennick --- Brighten the corner where you are > > http://Gennick.com * 906.387.1698 * mailto:[EMAIL PROTECTED] > > > > Join the Oracle-article list and receive one > > article on Oracle technologies per month by > > email. To join, visit > > http://four.pairlist.net/mailman/listinfo/oracle-article, > > or send email to [EMAIL PROTECTED] and > > include the word "subscribe" in either the subject or body. > > > > -- > > Please see the official ORACLE-L FAQ: http://www.orafaq.net > > -- > > Author: Jonathan Gennick > > INET: [EMAIL PROTECTED] > > > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > > San Diego, California -- Mailing list and web hosting services > > --------------------------------------------------------------------- > > To REMOVE yourself from this mailing list, send an E-Mail message > > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > > the message BODY, include a line containing: UNSUB ORACLE-L > > (or the name of mailing list you want to be removed from). You may > > also send the HELP command for other information (like subscribing). > > > > -- > > Please see the official ORACLE-L FAQ: http://www.orafaq.net > > -- > > Author: Cary Millsap > > INET: [EMAIL PROTECTED] > > > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > > San Diego, California -- Mailing list and web hosting services > > --------------------------------------------------------------------- > > To REMOVE yourself from this mailing list, send an E-Mail message > > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > > the message BODY, include a line containing: UNSUB ORACLE-L > > (or the name of mailing list you want to be removed from). You may > > also send the HELP command for other information (like subscribing). > > > > Mladen Gogala > Oracle DBA > > > > Note: > This message is for the named person's use only. It may contain > confidential, proprietary or legally privileged information. No > confidentiality or privilege is waived or lost by any mistransmission. If > you receive this message in error, please immediately delete it and all > copies of it from your system, destroy any hard copies of it and notify the > sender. You must not, directly or indirectly, use, disclose, distribute, > print, or copy any part of this message if you are not the intended > recipient. Wang Trading LLC and any of its subsidiaries each reserve the > right to monitor all e-mail communications through its networks. > Any views expressed in this message are those of the individual sender, > except where the message states otherwise and the sender is authorized to > state them to be the views of any such entity. > > -- > Please see the official ORACLE-L FAQ: http://www.orafaq.net > -- > Author: Mladen Gogala > INET: [EMAIL PROTECTED] > > Fat City Network Services -- 858-538-5051 http://www.fatcity.com > San Diego, California -- Mailing list and web hosting services > --------------------------------------------------------------------- > To REMOVE yourself from this mailing list, send an E-Mail message > to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in > the message BODY, include a line containing: UNSUB ORACLE-L > (or the name of mailing list you want to be removed from). You may > also send the HELP command for other information (like subscribing). __________________________________ Do you Yahoo!? Protect your identity with Yahoo! Mail AddressGuard http://antispam.yahoo.com/whatsnewfree -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Yong Huang INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).