Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Very high buffer gets
I did a full compute, see below:
1 select blocks, num_rows, sample_size, to_char(last_analyzed,
'DD-MON-YYYY HH24:MI:SS')
2 from all_tables
3* where table_name in ('AQ$_QUEUE_TABLES',
'AQ$_QUEUE_TABLE_AFFINITIES', 'AQ$_QUEUES')
SQL> set lines 100
SQL> /
BLOCKS NUM_ROWS SAMPLE_SIZE TO_CHAR(LAST_ANALYZED,'DD-
---------- ---------- ----------- -------------------------- 1 61 61 06-FEB-2006 15:50:09 2 136 136 06-FEB-2006 15:51:14 1 61 61 06-FEB-2006 15:50:48
I figured out with the help of John Clarke, that there are too many CR blocks being read, but I still fail to understand why 645 blocks / row?
Am going to do a 10201 trace alongwith 10046 trace to figure out what's going on.
Naveen
From: Mark W. Farnham [mailto:mwf_at_rsiz.com]
Sent: Tuesday, February 14, 2006 8:09 AM
To: gorbyx_at_gmail.com; Nahata, Naveen (US - Glen Mills)
Cc: oracle-l_at_freelists.org
Subject: RE: Very high buffer gets
How did the original poster determine that the tables have only 2 blocks or less each? A less than 100 percent statistics computation, perchance?
Perhaps
select count(non-indexed-column) from aq$_<tab>
(without any joins or other complications) would show more blocks below the high water mark than you think you have.
Regards,
mwf
-----Original Message----- From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Alex Gorbachev Sent: Monday, February 13, 2006 4:07 PM To: nnahata_at_deloitte.com Cc: oracle-l_at_freelists.org Subject: Re: Very high buffer gets If I recall correctly this is a bug in AQ handling. I think youshould be able to find it easilly on Metalink. I think Oracle attributes LIO that is caused by QMN during queue maintenance (delayed purging) instead of attributing those LIOs to the statements causing it. What is your version?
2006/2/13, Nahata, Naveen (US - Glen Mills) <nnahata_at_deloitte.com>:
Hi All,
After tracing the QMON process which was doing lots of buffer gets, I
found this culprit. None of the three tables involved in the query have
more than 2 blocks. I know the nested loop is iterating over the blocks
but that should still not account for more than 200 blocks / execution.
Why do I see such high values for buffer gets?
select t.schema , t.name, t.flags, q.name from system.aq$_queue_tables t, sys.aq$_queue_table_affinities aft, system.aq$_queues q where aft.table_objno = t.objno and aft.owner_instance = :1 and q.table_objno = t.objno and q.usage = 0 and bitand(t.flags, 4+16+32+64+128+256) = 0 and NOT ( t.name in ('DEF$_AQCALL' , 'DEF$_AQERROR') and t.schema =confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, you should delete this message.
'SYSTEM')for update of
t.name, aft.table_objno skip locked call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 84 0.00 0.03 0 0 0 0 Execute 84 0.03 0.03 0 0 0 0 Fetch 84 11.87 47.87 266 536288 45281 4627 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 252 11.90 47.94 266 536288 45281 4627 Misses in library cache during parse: 1 Optimizer goal: CHOOSE Parsing user id: SYS (recursive depth: 1) Rows Row Source Operation ------- --------------------------------------------------- 60 FOR UPDATE 62 HASH JOIN 59 NESTED LOOPS 59 TABLE ACCESS FULL AQ$_QUEUE_TABLES 59 TABLE ACCESS BY INDEX ROWID AQ$_QUEUE_TABLE_AFFINITIES 59 INDEX UNIQUE SCAN AQ$_QTABLE_AFFINITIES_PK (object id 2400) 64 TABLE ACCESS FULL AQ$_QUEUES Naveen This message (including any attachments) contains
Any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited. [v.E.1]
-- http://www.freelists.org/webpage/oracle-l -- Best regards, Alex Gorbachev
-- http://www.freelists.org/webpage/oracle-lReceived on Tue Feb 14 2006 - 07:31:34 CST
![]() |
![]() |