RE: Performance off "count(*)"

  • From: Tanel Poder <tanel.poder.003@xxxxxxx>
  • To: jonathan@xxxxxxxxxxxxxxxxxx, oracle-l@xxxxxxxxxxxxx
  • Date: Sun, 20 Jul 2008 00:18:44 +0800

Jonathan,

I haven't looked into a binary blockdump, but the symbolic dump of a cleaned
out block still knows about the rowpointers as they are (the offs= fields
below).

Maybe something like you mentioned happens during block coalesce... haven't
checked though.

data_block_dump,data header at 0x33a705c
===============
tsiz: 0x1fa0
hsiz: 0x18
pbl: 0x033a705c
bdba: 0x00408b4a
     76543210
flag=--------
ntab=1
nrow=3
frre=-1
fsbo=0x18
fseo=0x1f8e
avsp=0x1f6d
tosp=0x1f7f
0xe:pti[0]      nrow=3  offs=0
0x12:pri[0]     offs=0x1f9a
0x14:pri[1]     offs=0x1f94
0x16:pri[2]     offs=0x1f8e
block_row_dump:
tab 0, row 0, @0x1f9a
tl: 2 fb: --HDFL-- lb: 0x1
tab 0, row 1, @0x1f94
tl: 2 fb: --HDFL-- lb: 0x2
tab 0, row 2, @0x1f8e
tl: 6 fb: --H-FL-- lb: 0x0  cc: 1
col  0: [ 2]  c1 04
end_of_block_dump


--
Regards,
Tanel Poder
 <http://blog.tanelpoder.com> http://blog.tanelpoder.com


> -----Original Message-----
> From: oracle-l-bounce@xxxxxxxxxxxxx
> [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Jonathan Lewis
> Sent: Saturday, July 19, 2008 21:34
> To: oracle-l@xxxxxxxxxxxxx
> Subject: Re: Performance off "count(*)"
>
>
> Tanel,
>
> I haven't checked this for several years, but I think the
> rowpointers for deleted rows get set to -1 (or some other
> special value) when the block gets cleaned out.
>
> But you've definitely got me on the head row-pieces, I forgot
> to consider the effects of chained rows.
>
> Regards
>
> Jonathan Lewis
> http://jonathanlewis.wordpress.com
>
> Author: Cost Based Oracle: Fundamentals
> http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html
>
> The Co-operative Oracle Users' FAQ
> http://www.jlcomp.demon.co.uk/faq/ind_faq.html
>
>


Other related posts: