That's it. If you didn't use the cache, then it would cause the same
problem as with normal table-managed sequence numbers. But with cached
sequence numbers, an application can get a sequence number without
touching the database (SEQ$) at all.


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-----
Yong Huang
Sent: Wednesday, November 05, 2003 10:24 AM
To: Multiple recipients of list ORACLE-L

Cary,

If hitting a table that keeps a counter causes so many performance
problems, I
wonder why hitting sys.seq$ is much faster. I'd like to have some
education on
this Oracle magic. The only thing I can think of is that Oracle keeps
some
numbers in library cache as seen in sys.v$_sequences. Your own table
doesn't do
that.

Yong Huang

--- Cary Millsap <[EMAIL PROTECTED]> wrote:
> "Hit a table that keeps a counter" will not scale (will not perform at
> high concurrency). It will cause you no end of "buffer busy waits"
> waits, "latch free" waits for a cache buffers chains latch (even if
> db_block_buffers, _db_block_hash_buckets, and _db_block_hash_latches
> could be set to infinity), lots of unnecessary CPU service consumption
> due to the spinning (especially if you try to tinker with
_spin_count),
> and possibly a wide range of side effects including "write complete
> waits" waits and others.
> 
> 
> 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-----
> Hemant K Chitale
> Sent: Wednesday, November 05, 2003 8:25 AM
> To: Multiple recipients of list ORACLE-L
> 
> 
> My comments [probably off-the-cuff without spending much time
> thinking the issues through .....?]
> 
> 1.  Hit a table that keeps a counter.
> Used to be a mechanism in the Oracle5 days [If I remember correctly,
> Sequences came in Oracle6].  Issues were with locking the single
> record used as the generator or scanning for the max(value) of the
> key.
> Not quite sure I understand how you encountered concurrency issues,
> though.
> 
> 
> 2. Stored sequences.
> Although I prefer not to use a Sequence as a PK in itself  [preferring
> natural column/s which are Unique keys, with the NOT NULL, of course],
> I have used a Sequence in an Advanced Replication implementation that
> had no Primary Key and I needed a PK for Conflict Resolution [this was
> years
> ago and, if you ask me, I can't remember all the details]
> 
> 3. SYS_GUID
> SYS_GUID I've never used.  It doesn't generate a NUMBER value
> so it is not really similar to a Sequence.
> Can user's key in a SYS_GUID-generated value ?  Is it really
> "human readable" or "recallable" as a plain NUMBER, Security Security
> Number,
> ZIP Code ??
> 
> 4. Similar to SYS_GUID ..
> You hit on a fortuitous combination of columns.
> 
> 
> Hemant
> 
> At 05:19 AM 05-11-03 -0800, you wrote:
> >The recent article that mentioned sequences got me to
> >thinking. I might pitch a more detailed article on sequences
> >to Builder.com. But a more interesting article might be one
> >that explored various ways to automatically generate primary
> >keys. So, in the name of research, let me throw out the
> >following questions:
> >
> >What mechanisms have you used to generate primary keys?
> >Which ones worked well, and why? Which mechanisms worked
> >poorly?
> >
> >I've run up against the following approaches:
> >
> >* Hit a table that keeps a counter. This is the "roll your
> >own sequence method". The one time I recall encountering
> >this approach, I helped convert it over to using stored
> >sequences. This was because of concurrency problems: with
> >careful timing, two users could end up with the same ID
> >number for different records. Is there ever a case when this
> >roll-your-own approach makes sense, and is workable?
> >
> >* Stored sequences. I worked on one app that used a separate
> >sequence for each automatically generated primary key. I
> >worked on another app, a smaller one, that used the same
> >sequence for more than one table. The only issue that I
> >recall is that sometimes numbers would be skipped. But end
> >users really didn't care, or even notice.
> >
> >* The SYS_GUID approach. I've never used SYS_GUID as a
> >primary key generator. I wonder, was that Oracle's
> >motivation for creating the function? Has anyone used it for
> >primary keys in a production app? What's the real reason
> >Oracle created this function?
> >
> >* Similar to SYS_GUID, I once worked on an obituary-tracking
> >application that built up a primary key from, as best I can
> >recall now: date of death, part of surname, part of first
> >name, and a sequence number used only to resolve collisions,
> >of which there were few. The approached worked well,
> >actually, because whatever fields we munged together to
> >generate a primary key gave us a unique key the vast
> >majority of the time.
> >
> >The SYS_GUID approach is interesting, but if you need an ID
> >number that users will see, and that users might type in
> >themselves (e.g. social security number), is SYS_GUID really
> >all that viable?
> >
> >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).
> 
> Hemant K Chitale
> Oracle 9i Database Administrator Certified Professional
> My personal web site is :  http://hkchital.tripod.com
> 
> 
> -- 
> Please see the official ORACLE-L FAQ: http://www.orafaq.net
> -- 
> Author: Hemant K Chitale
>   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).


__________________________________
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).

-- 
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).

Reply via email to