Gaja, you have a unique gift of ending a thread ;P

"Do not criticize someone until you walked a mile in their shoes, that way
when you criticize them, you are a mile a way and have their shoes."

Christopher R. Spence 
Oracle DBA
Phone: (978) 322-5744
Fax:    (707) 885-2275

Fuelspot
73 Princeton Street
North, Chelmsford 01863
 


-----Original Message-----
Sent: Thursday, October 04, 2001 4:30 PM
To: Multiple recipients of list ORACLE-L

Hi Satar & list,

To add to the issues and concerns that Jonathan has
already so eloquently outlined, let me add a key
factor that needs to be considered. 

I/O tuning fundamentals require us to ensure that the
filesystem blocksize = db_block_size. The default
filesystem blocks size in Veritas is 1K and it is more
than likely that almost every Veritas filesystem that
is out there is in fact created with an 1K block size.
This is true even though we are talking about Quick
I/O which works on a Veritas-simulated raw device.

At any rate, creating an database (regardless whether
it is OLTP or otherwise) with a db_block_size of
anything other than the filesystem block size is a
receipe for chronic I/O bottlenecks.

For example, if db_block_size were 2K and the
filesystem block size were 8K, every 2K worth of I/O
requested by Oracle, will actually result in the I/O
sub-system performing 8K worth of I/O (essentially
your system will be doing 4 times more I/O than what
is required).

On the flipside, if you have db_block_size at 8K and
the filesystem block size at 2K, you end up with a
scenario, where every 8K I/O request by Oracle will
cause 4 filesystem blocks to be read. When
applications perform enough "single-block" index
range-scans, it will cause the read-ahead algorithm to
accidentally engage, resulting in 128K or even 256K
worth pre-fetches, which results in "wasted I/O
capacity". From a "real life" perspective, you will
rarely find "true OLTP" systems these days. Most
systems out there are hybrid in nature, OLTP during
the day and DSS at night. And that is a huge factor to
consider.

There have been many studies that have been done to
measure and benchmark query performance, load time,
index creation and transaction rate for various values
of db_block_size. In every published study, it has
been proved beyond a shred of doubt that each increase
of db_block_size provides approximately 40% increase
in performance (especially in query execution and
large loads, which are significant for the batch
window). Further, the height of an index is another
"significant factor" in I/O performance during index
scans, and it is dependent on db_block_size. The
smaller the value of db_block_size, the larger is the
"number of read system calls" Oracle will have to
perform.

Bottom line, I personally will never create a database
with a db_block_size less than 8K, regardless of
whether we use Veritas or not, given the "hybrid"
nature of most databases today. More importantly, the
values of filesystem blocksize and db_block_size needs
to be kept in strict equality. Failure to do so will
result in severe I/O performance problems "by design".

While the 8K block size minimum is good for most
hybrid systems of today, applications that are purely
DSS, the recommendation of picking the largest
possible db_block_size on that platform still holds
good. When it doubt, go with the larger block size, as
it is much easier to deal with block-level and
row-level contention by proactively configuring
INITRANS, MAXTRANS, PCTFREE and PCTUSED. Contention
for the cache buffer chain and cache buffer lru
latches can be dealt with by setting the relevant
init.ora parameters.

In closing, I want to use the "car anology" in this
thread - it is not relevant whether you recommend a
Honda or a Benz(regardless of one's personal
definition of "sex on wheels") when someone asks for a
car recommendation. What matters is that you recommend
a car that does not have an inherent "design problem".

Hope that helps,

Gaja

--- satar naghshineh <[EMAIL PROTECTED]> wrote:
> Hi Jonathan,
> 
> Sweeping statement...maybe. It all depends on your
> application. That's why I put an emphasis on his/her
> application (meaning both physical structure and
> data)
> requirements. As a GENERAL rule of thumb, I
> (personally) suggest (if possible) 2k for OLTP
> databases. It's like if you ask me what car to buy,
> I
> would say a "Honda". But if you were to tell me that
> you need speed, style and sex on wheels, I would
> suggest a Benz. 
> 
> You and I, (especially you!) can argue the
> benefits/disadvantages of using 2k block
> size...Which
> I don't care to do. I've put the benefits/reasons of
> a
> 2k blocksize at the bottom of this reply just to
> show
> some reverse examples of the ones you replied with.
> Some of the reasons should look familiar to you! ;)
> 
> Regards,
> Satar
> 
> 1. The OLTP app has lots of small rows (<2k)
> 
> 2. The OLTP app does massive scattered reads (you
> don't full scan in OLTP).  It
> reads a block here, a block there based on some
> primary key (after doing lots of
> scattered reads to walk an index structure)
> 
> 3. The OLTP app has 1,000 connected users -- each
> wants their current row(s) they
> are using in the cache. 
> 
> 4. A smaller block size in a database that does lots
> of scattered IO's (eg: an OLTP system) and random
> keyed reads can definitely benefit from smaller
> blocksizes.
> 
> 5. The indexes for the critical access paths fit
> exactly into an N-layer tree and allow an optimum
> buffering strategy when memory is limited.
> 
> 6. In almost all cases the data for a single index
> value will be (significantly) less than 2K and will
> all be found in the same block.
> 
> 7. Memory is at a premium.
> 
> --- Jonathan Lewis <[EMAIL PROTECTED]>
> wrote:
> > 
> > That's a fairly sweeping statement to make without
> > any justification - after all, at 2K:
> > 
> >     The block header is a much larger percentage 
> >     of the block size - so you lose space.
> > 
> >     The probability of wasting space from the
> > PCTFREE 
> >     setting increases - so you lose space.
> > 
> >     The memory overhead due to x$bh is fixed per
> > block,
> >     so you use more memory to hold the same volume
> >     (block size x block count) of data.
> > 
> >     Index depth may increase through having fewer 
> >     entries per branch block.
> > 
> >     Latch activity is likely to increase on range
> > scans
> >     because leaf blocks hold fewer entries - you
> get
> >     the same effect on tables with clustered data
> -
> >     and the effectiveness of IOTs will
> particularly
> > be
> >     reduced.
> > 
> > 
> > Jonathan Lewis
> > http://www.jlcomp.demon.co.uk
> > 
> > Host to The Co-Operative Oracle Users' FAQ
> > http://www.jlcomp.demon.co.uk/faq/ind_faq.html
> > 
> > Author of:
> > Practical Oracle 8i: Building Efficient Databases
> > 
> > -----Original Message-----
> > To: Multiple recipients of list ORACLE-L
> > <[EMAIL PROTECTED]>
> > Date: 02 October 2001 21:56
> > 
> > 
> > |If your application allows it, and if the
> > Application
> > |will not change in the future, then use a 2k
> block
> > |size for OLTP database.
> > |
> > |If you are not sure on the application needs,
> then
> > |stick with 4k to be safe.
> > |
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Listen to your Yahoo! Mail messages from any phone.
> http://phone.yahoo.com
> -- 
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> -- 
> Author: satar naghshineh
>   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!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just
$8.95/month.
http://geocities.yahoo.com/ps/info1
-- 
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).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Christopher Spence
  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