Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Re: Enable 32K Block in 8K Block DB

Re: Enable 32K Block in 8K Block DB

From: Mike Ault <>
Date: 29 Mar 2004 17:07:07 -0800
Message-ID: <>

"Howard J. Rogers" <> wrote in message news:<40687d58$0$28283$>...
> "Charles" <> wrote in message
> >
> > Thank you for replying.
> >
> > The database I am working with is a 1.8TB SAP R/3 oracle database. I
> > wanted to reorganize its indices into 32K tablespaces since some
> > Oracle Performance book author(s) have indicated that's a good idea
> > for indices.
> It's not, and the advice is utter nonsense.
> Unless you are running on raw, or have a file system that can do direct I/O,
> then mucking about with your block sizes is (a) a complete waste of time and
> (b) is actually going to introduce performance problems.
> > Aside from that, SAP R/3 databases have thousands of tiny or empty
> > tables defined in them, and I wanted to reorganize them onto 2K
> > blocks.
> If there are 10,000 tables which are empty, and you are housing them in 8K
> blocks, you have wasted approximately 400MB of disk space (initial extents
> of 5 blocks). Are you really that desperate for a trifling 400MB of space in
> a 1.8TB database that you are willing to introduce performance-crippling
> block write issues should those empty tables ever become non-empty?
> > Then, I could better size the caches for these tables as I attempt to
> > tune this database.
> >
> > That's the background incentive behind this request.
> >
> > But aside from starting a thread about databse tuning, I'd just like
> > to learn the proper steps for enable the multiple block sizes so I at
> > least have the option of using them, pending I comply with my AIX
> > block size constraints.
> But that's the point. You *don't* have the option of using them. Not really.
> You're kidding yourself if you think you do.
> And if you haven't got the message by now, anything that Burleson suggests
> is to be taken with a mine-full of salt.
> Regards
Let's examine these allocations objectively shall we?

1 – Indexes like large tablespaces
This is quite true. Robin Schumacher proved that the index tree builds cleaner and that range scans happen with less consistent gets:

Note the test that proves it.

2 – TEMP likes large blocksizes

This is very true. All temp segment access is sequential and 32k blocksizes greatly reduce logical I/O and disk sort times. I'm working an a benchmark right now that shows a one-third speed improvement of disk sorts in a 32k vs. an 8k blocksize.

While the database will have to be created with the blocksize this large to use temporary tablespaces this size, most databases that require large sorts will be data warehouse or DSS and thus will also benefit from large blocksizes.

3 – Multiple blocksizes

Multiple blocksizes are used in ALL the Oracle10g TPC-C benchmarks because they allow far faster transaction execution with less I/O. These vendors spent hundreds of thousands of dollars to get the fastest performance and their choice of multiple blocksizes speaks for itself.

UNISYS benchmark: 250,000 transactions per minute.

db_16k_cache_size = 15010M
db_8k_cache_size = 1024M
db_cache_size = 8096M
db_keep_cache_size = 78000M

HP benchmark: 1,000,000 transactions per minute.

db_cache_size = 4000M
db_recycle_cache_size = 500M
db_8k_cache_size = 200M
db_16k_cache_size = 4056M
db_2k_cache_size = 35430M

Now, post some actual tests that prove or disprove these and we can discuss this some more. Until then, let's move on.

Mike Ault Received on Mon Mar 29 2004 - 19:07:07 CST

Original text of this message