All,

I think the issue of using SYS.DUAL vs. X$DUAL is much
beyond just "response time". It is more related to
"easing a potential bottleneck" in your database, in a
production environment supporting multiple sessions.
Given that it takes 5 LIOs (upto Oracle8i) and 3 LIOs
(in Oracle9i for every access to SYS.DUAL, the issue
then boils down to the contention for the "cache
buffers chains" latch to access blocks in the database
buffer cache. So just because it is only 5(3) LIOs,
that does not make it OK.

If your application is using SYS.DUAL "like there is
no tomorrow", the cache buffers chains latch becomes
your single point of contention. This is true, even if
you have _DB_BLOCK_HASH_BUCKETS set to a value higher
than its default.

As Cary has mentioned many times before, the problem
here is "application serialization". For more on this
subject, please read Cary's papers "Why a 99%+ buffer
cache hit ratio is NOT Ok" on
http://www.hotsos.com/catalog and a recent paper at
IOUG-A Live 2002 which talks about some common
"Misunderstandings about Oracle Internals".

Best regards,

Gaja


--- "Khedr, Waleed" <[EMAIL PROTECTED]> wrote:
> Kevin and Jonathan,
> 
> Thanks for the explanation. It's weird for me that
> Oracle is still
> maintaining this kind of dependency between the SQL
> and PL/SQL engines for
> minor sql functions. Also regarding the dual and
> x$dual, it does not sound
> good to me that Oracle still is implementing dual as
> a table segment even in
> Oracle 9i.
> 
> I would give Gaja all the excuses to recommend using
> something else other
> than sys.dual to overcome this limitation.
> 
> But on the other hand the difference in performance
> and the over all gain is
> too minor to use x$dual (look at the test below).
> 
> Modifying the code and changing the design (or even
> tuning one sql) would be
> more promising.
> 
> Thanks everybody,
> 
> 
> Waleed
> 
> 
> declare
> nn number;
> ss1 date;
> ss2 date;
> begin
> ss1 := sysdate;
> for i in 1..100000 loop
> select 2 into nn from sys.x_$dual;
> end loop;
> ss2 := sysdate;
> dbms_output.put_line('run time using view x_$dual in
> centiseconds='||(ss2 -
> ss1 ) * 24 * 60 * 60 * 100);
> 
> ---
> ss1 := sysdate;
> for i in 1..100000 loop
> select 2 into nn from dual;
> end loop;
> ss2 := sysdate;
> dbms_output.put_line('run time using table dual in
> centiseconds='||(ss2 -
> ss1 ) * 24 * 60 * 60 * 100);
> end;
> 
> -----Original Message-----
> Sent: Tuesday, April 23, 2002 6:18 PM
> To: Multiple recipients of list ORACLE-L
> 
> 
> It's a change that also made it into 8.1.7.3
> (or possibly 8.1.7.2) - check in 
> 
> $ORACLE_HOME/rdbms/admin/standard.sql
> 
> 
> Jonathan Lewis
> http://www.jlcomp.demon.co.uk
> 
> Author of:
> Practical Oracle 8i: Building Efficient Databases
> 
> Next Seminar - Australia - July/August
> http://www.jlcomp.demon.co.uk/seminar.html
> 
> Host to The Co-Operative Oracle Users' FAQ
> http://www.jlcomp.demon.co.uk/faq/ind_faq.html
> 
> 
> 
> -----Original Message-----
> To: Multiple recipients of list ORACLE-L
> <[EMAIL PROTECTED]>
> Date: 23 April 2002 22:05
> 
> 
> |I did in 8i (8.1.7.3) and did not see what you
> said:
> |
> |alter session set sql_trace = true
> |
> 
> 
> -- 
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> -- 
> Author: Jonathan Lewis
>   INET: [EMAIL PROTECTED]
> 
> Fat City Network Services    -- (858) 538-5051  FAX:
> (858) 538-5051
> San Diego, California        -- Public Internet
> access / Mailing Lists
>
--------------------------------------------------------------------
> 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.com
> -- 
> Author: Khedr, Waleed
>   INET: [EMAIL PROTECTED]
> 
> Fat City Network Services    -- (858) 538-5051  FAX:
> (858) 538-5051
> San Diego, California        -- Public Internet
> access / Mailing Lists
>
--------------------------------------------------------------------
> 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).


=====
Gaja Krishna Vaidyanatha
Director, Storage Management Products,
Quest Software, Inc.
Co-author - Oracle Performance Tuning 101
http://www.osborne.com/database_erp/0072131454/0072131454.shtml

__________________________________________________
Do You Yahoo!?
Yahoo! Games - play chess, backgammon, pool and more
http://games.yahoo.com/
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Gaja Krishna Vaidyanatha
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
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