Ok, another volley.
I have the same objects and conditions as described below (default block size 8k and 
one 16k tablespace with one table).
The 16k table is small ( create table blah (col1 varchar2(10), col2 number) tablespace 
my16ktbsp storage(buffer_pool KEEP);)
-- insert data
begin
for i in 1..10000
loop
insert into blah values ('whatever',1);
end loop;
end;
/
commit;
-- result is 10000 records in table blah.

select * from blah;  
-- I ran this several times.

Now query for buffer info shows...
SUBCACHE     OBJECT_NAME                        BLOCKS
------------ ------------------------------ ----------
16K SUBCACHE BLAH                                   32
16K SUBCACHE BLAH                                   32

So, it strongly appears that even though I specified buffer cache of keep, it still 
has to go in cache of same block size.





>> [EMAIL PROTECTED] 02/20/03 04:30PM >>>
John,

My earlier assumptions were wrong (usually are, that's why I test).
I set up a 9.2 instance with these parameters:
db_cache_size=300M
db_keep_cache_size=40M
db_16k_cache_size=40M
db_block_size=8192

Then, I created a tablespace MY16KTBSP with a 16k block size.
Then, create table TESTA tablespace MY16KTBSP storage(buffer_cache KEEP);
And this works.  Does this really utilize the keep buffer cache?  I'm not sure because 
it also worked in another test when I had no keep buffer.  I'm not sure how to tell 
which buffer the blocks are in right now, maybe another list user can help us both 
with that.
However, I just read your question again and realized I'm not anywhere in the 
neighborhood of addressing your issue which is your 'waits'.
We aren't concerned with the number of waits (yes, but not only), but also the time 
spent waiting and why.
A lot more information is needed really.  Size and content of the table?  Other 
indexes on the table?  Are statisics up to date and accurate?  Is use of this index 
really appropriate, sometimes full table scan is faster.
Something else maybe another person could address, I'm not sure that db file 
sequential reads are physical only.  They may be physical and logical depending on 
your blocks already being read into buffer.  
I'm thinking it doesn't matter so much which buffer, default, keep, or 16k is being 
used, if further analysis/testing shows benefit of this index being in cache, use keep.
Test available scenarios a few times and use which is best.


>>> [EMAIL PROTECTED] 02/20/03 10:54AM >>>
Hi John,

If I'm understanding what I'm reading from the 9i Concepts Guide, I think that 
non-default block size objects can only go into the cache with the same block size 
(meaning it can't go into keep buffer).  I'm making this assumption because we can't 
create a tablespace of 16k blocksize until db_16k_cache exists.  However, I'm working 
on testing this today and will reply with results.

Darrell


>>> [EMAIL PROTECTED] 02/19/03 01:50PM >>>
I have indexes in a 16k page size tablespace.
I have the following init.ora parameters:

db_block_size=4096
db_cache_size=600M
db_keep_cache_size=200M
db_16k_cache_size=200M 

If I alter an index to put it in the keep pool, how does Oracle hande the
discrepancy between the 4k default keep buffer and the 16k index block size?

Am I better off keeping the index in the 16k cache or in the db_keep_cache
pool?

Since statspack shows:

Event                               Waits   Timeouts   Time (s)   (ms)
/txn
---------------------------- ------------ ---------- ---------- ------
--------
db file sequential read         2,725,553          0     40,710     15
355.2

I assume my indexes should be cached more to reduce the waits.
Is that correct?

Any advice would be appreciated.

Thanks

John Baylis
Database Administrator
Canadian Forest Products Ltd.
Vancouver B.C. Canada

> (604) 697-6476 (Office)
> (604) 313-6054 (Cell)
> 

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net 
-- 
Author: Darrell Landrum
  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: Darrell Landrum
  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: Darrell Landrum
  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