i thought an index_fs only read 1 block per i/o? same with an index range
scan because they are using random access?
----- Original Message -----
To: "Multiple recipients of list ORACLE-L" <[EMAIL PROTECTED]>
Sent: Tuesday, January 27, 2004 5:29 PM


> An index fast full scan and an index full scan both need to access all
> the blocks of an index.  The only difference between them is that the
> index_ffs accesses the blocks in the order of the blocks (and uses
> multiblock read), whereas the index_fs accesses the blocks in the order
> of the b tree index.  In terms of # logical I/Os, they are exactly the
same.
>
> OTOH, an index range scan by definition is a _range_ scan, and need to
> access only a subset of the blocks of an index.  Because of this, it'll
> have a lower # logical I/Os than an index_ffs.
>
> Regards,
> Dave
>
>
> [EMAIL PROTECTED] wrote:
>
> >ive found that index_ffs typically incur higher logical I/Os that index
range scans. so its not just access speeds.
> >
> >
> >>From: David Hau <[EMAIL PROTECTED]>
> >>Date: 2004/01/27 Tue AM 11:54:26 EST
> >>To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]>
> >>Subject: Re: When does Oracle use 'Index Fast Scan'
> >>
> >>This is where the access time of your disks (or SAN) makes a difference.
> >>  If your disks have really fast access time, then a random-access
> >>pattern would not cause much performance degradation and so a range scan
> >>would not be slow at all, even though it's traversing the b-tree index
> >>structure.  If you're only striping together disks with relatively slow
> >>access time (e.g. using a striped IDE disk array), then you have high
> >>throughput but not that fast an access time.  In this case, fast full
> >>index scan would be much faster than an index range scan because the
> >>fast full scan reads the blocks sequentially and a sequential disk I/O
> >>requires only positioning the head once (assuming the disk is not
> >>fragmented).  The rest of the time depends on the throughput.  If you
> >>stripe together a large enough number of IDE disks, then your throughput
> >>is great but your access time is still the access time of a single IDE
> >>drive which is not that fast.
> >>
> >>This is assuming you need to do a physical I/O to obtain the blocks.  Of
> >>course, if the blocks already reside in the buffer cache, then it's a
> >>different story.
> >>
> >>Regards,
> >>Dave
> >>
> >>
> >>[EMAIL PROTECTED] wrote:
> >>
> >>
> >>
> >>>btw, in many cases range scan is faster than a fast full scan. Range
scan recursively hits the nodes that are needed and skips the ones that are
not. So it reads less blocks.
> >>>
> >>>So if you are looking for a 'range' or a specific value, range scan
beats fast full scan most of the time. Less Logical and Physical I/Os.
> >>>
> >>>test it and hint your queries
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>From: David Hau <[EMAIL PROTECTED]>
> >>>>Date: 2004/01/26 Mon PM 10:34:25 EST
> >>>>To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]>
> >>>>Subject: Re: When does Oracle use 'Index Fast Scan'
> >>>>
> >>>>Correction:  the Index Range Scan can be parallelized when it involves
> >>>>multiple partitions.
> >>>>
> >>>>- Dave
> >>>>
> >>>>
> >>>>David Hau wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>I assume you're talking about the Fast Full Index Scan.  This is used
> >>>>>when the index contains all the columns necessary to answer the
query.
> >>>>>
> >>>>>It's faster than a Full Table Scan because indexes are smaller than
> >>>>>entire rows, so a Fast Full Index Scan will scan fewer blocks than a
> >>>>>Full Table Scan.
> >>>>>
> >>>>>It's faster than an Index Range Scan firstly because Fast Full Index
> >>>>>Scan scans the blocks in sequential order, whereas the Index Range
> >>>>>Scan traverses the B-tree index structure in scanning the blocks,
> >>>>>resulting in a random access I/O pattern which is slower.  This is
> >>>>>also why the Oracle documentation says that with a Fast Full Index
> >>>>>Scan, the result is not sorted by the index key (because the result
is
> >>>>>not obtained by traversing the index structure.)  Secondly, the
better
> >>>>>performance is also because the Fast Full Index Scan uses multiblock
> >>>>>reads and is capable of parallel operation, whereas the Index Range
> >>>>>Scan is capable of neither.
> >>>>>
> >>>>>Regards,
> >>>>>Dave.
> >>>>>
> >>>>>
> >>>>>
> >>>>>[EMAIL PROTECTED] wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>I have found that the vast majority of time that Oracle chooses this
> >>>>>>method, my statistics are stale and the query is sub-optimal. One
> >>>>>>time, Oracle changed from a 'range scan' to this type of scan with a
> >>>>>>FIRST_ROWS hint and this reduced performance.
> >>>>>>
> >>>>>>This is just a full scan of the index, one block at a time right?
> >>>>>>When would this ever be superior to a Fast Full Scan or a Range
Scan?
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>--
> >>>>Please see the official ORACLE-L FAQ: http://www.orafaq.net
> >>>>--
> >>>>Author: David Hau
> >>>> 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: David Hau
> >>  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: David Hau
>   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: Ryan
  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