Re: Table with 300 columns (ie > 255) : Row Chaining ?

From: John Kanagaraj <john.kanagaraj_at_gmail.com>
Date: Tue, 20 Oct 2009 15:42:33 -0700
Message-ID: <2ead3a60910201542u32441b74p789e740978f1a104_at_mail.gmail.com>



Hi Hemant,

> Your test table has 350 columns. A row piece can store at most 255
> columns. As a result, you have two row pieces: one with 255 columns and
> another with 95 (350-255) columns. As I wrote in my previous reply, the
> pieces are split and stored in "reverse order". That means two things:
> 1) the first row piece is the one having 95 columns 2) the first row
> piece is stored after the second one.

Just to add to this discussion, the answer is in the Concepts manual (10gR2 Concepts - Chapter 5 Schema Objects):

When a table has more than 255 columns, rows that have data after the 255th column are likely to be chained within the same block. This is called intra-block chaining. A chained row’s pieces are chained together using the rowids of the pieces. With intra-block chaining, users receive all the data in the same block. If the row fits in the block, users do not see an effect in I/O performance, because no extra I/O operation is required to retrieve the rest of the row.

-- 
John Kanagaraj <><
http://www.linkedin.com/in/johnkanagaraj
http://jkanagaraj.wordpress.com (Sorry - not an Oracle blog!)
** The opinions and facts contained in this message are entirely mine
and do not reflect those of my employer or customers **
--
http://www.freelists.org/webpage/oracle-l
Received on Tue Oct 20 2009 - 17:42:33 CDT

Original text of this message