Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Row Chaining: Yet to get answer

RE: Row Chaining: Yet to get answer

From: Alex Hillman <alex_hillman_at_physia.com>
Date: Fri, 23 Jun 2000 13:56:29 -0400
Message-Id: <10537.110296@fatcity.com>


This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible.

------_=_NextPart_001_01BFDD3C.5BECECA0
Content-Type: text/plain;

        charset="iso-8859-1"

This answer looks like citation from Oracle unleashed.

Alex Hillman

-----Original Message-----
From: Ron Rogers [mailto:RROGERS_at_galottery.org] Sent: Friday, June 23, 2000 12:48 PM
To: Multiple recipients of list ORACLE-L Subject: Re: Row Chaining: Yet to get answer

Sandeep,
  As I understand the row chaining issue and how to prevent it, you have to calculate the size of the complete row of data, then calculate how many rows will fit into a block of data on your system, and then figure the table initial and extent size accordingly. Keep in mind that all rows of data has some overhead that must be used in the calulations. To get an accurate calculation and inserting of rows it is usefull if the data columns contain 100% of the column description. This will fill the row completely as described and calculated.
As an example: a CHAR(300) and a VARCHAR2(300) do not take up the same space in a row if only 10 characters are entered into the column. This will throw your block usage off a lot and you will have partial used blocks. The calculations that I use are listed here and I ask the developers for a row count that will handle 2 years of data( trying to plan sufficient storage and not have to re-arrange or extend the datafiles). TO DETERMINE THE SIZE OF A TABLE STORAGE step 1. NUMBER OF ROWS IN TABLE. ---------------

step 2. NUMBER OF ROWS IN BLOCK.

NUMBER =21
CHAR = COLUMN SIZE
VARCHAR = COLUMN SIZE
DATE = 7 Z=3+(SUM OF COLUMN SIZES)+(# OF COLUMNS < 250)+(3* # OF COLUMNS > 250)

X= DBBLK SIZE / Z       ---------------------------------------------

Y=DBBLK-(%FREE(DBBLK-(52+4(X)))

Y>=X*Z  ADJ X TO GET "TRUE"               ---------------------

step 3. TOTAL BLOCKS NEEDED.

TOT BLOCKS=ROWS IN TABLE/ROWS PER BLOCK TABLE SIZE =DBBLK SIZE * TOT BLOCKS / 1024 GIVES TABLE SIZE IN K. Hope this helps,
Ron Rogers
DBA
Atl.GA                                       

>>> sandeep.dubey_at_induscorp.com 06/23/00 11:14AM >>> Hi gurus,

I asked to clear a doubt about row chaining, but have not rece'd any answer. I am asking again.

On a bulk Insert(and no update), will there be any row chaining at all? If yes, How to prevent it? If no, I have it although less than 1%.

Thanks in advance.

Sandeep

-- 
Author: Sandeep Dubey
  INET: sandeep.dubey_at_induscorp.com 

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (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).

-- 
Author: Ron Rogers
  INET: RROGERS_at_galottery.org

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (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).

------_=_NextPart_001_01BFDD3C.5BECECA0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2448.0">
<TITLE>RE: Row Chaining: Yet to get answer</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2>This answer looks like citation from Oracle =
unleashed.</FONT>
</P>

<P><FONT SIZE=3D2>Alex Hillman</FONT>
</P>

<P><FONT SIZE=3D2>-----Original Message-----</FONT>
<BR><FONT SIZE=3D2>From: Ron Rogers [<A =
HREF=3D"mailto:RROGERS_at_galottery.org">mailto:RROGERS_at_galottery.org</A>]<= /FONT>
<BR><FONT SIZE=3D2>Sent: Friday, June 23, 2000 12:48 PM</FONT>
<BR><FONT SIZE=3D2>To: Multiple recipients of list ORACLE-L</FONT>
<BR><FONT SIZE=3D2>Subject: Re: Row Chaining: Yet to get answer</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Sandeep,</FONT>
<BR><FONT SIZE=3D2>&nbsp; As I understand the row chaining issue and =
how to prevent it, you have to calculate the size of the complete row = of data, then calculate how many rows will fit into a block of data on = your system, and then figure the table initial and extent size = accordingly. Keep in mind that all rows of data has some overhead that = must be used in the calulations. To get an accurate calculation and = inserting of rows it is usefull if the data columns contain 100% of the = column description. This will fill the row completely as described and = calculated.</FONT></P>
<P><FONT SIZE=3D2>As an example: a CHAR(300) and a VARCHAR2(300) do not =
take up the same space in a row if only 10 characters are entered into = the column. This will throw your block usage off a lot and you will = have partial used blocks.</FONT></P>
<P><FONT SIZE=3D2>The calculations that I use are listed here and I ask =
the developers for a row count that will handle 2 years of data( trying = to plan sufficient storage and not have to re-arrange or extend the = datafiles).</FONT></P>
<P><FONT SIZE=3D2>TO DETERMINE THE SIZE OF A TABLE STORAGE</FONT>
</P>

<P><FONT SIZE=3D2>step 1. NUMBER OF ROWS IN =
TABLE.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ---------------</FONT>
</P>

<P><FONT SIZE=3D2>step 2. NUMBER OF ROWS IN BLOCK.</FONT>
</P>

<P><FONT SIZE=3D2>NUMBER =3D21</FONT>
<BR><FONT SIZE=3D2>CHAR =3D COLUMN SIZE</FONT>
<BR><FONT SIZE=3D2>VARCHAR =3D COLUMN SIZE</FONT>
<BR><FONT SIZE=3D2>DATE =3D 7</FONT>
</P>

<P><FONT SIZE=3D2>Z=3D3+(SUM OF COLUMN SIZES)+(# OF COLUMNS &lt; =
250)+(3* # OF COLUMNS &gt; 250)</FONT>
</P>

<P><FONT SIZE=3D2>X=3D DBBLK SIZE / =
Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ---------------------------------------------</FONT>
</P>

<P><FONT SIZE=3D2>Y=3DDBBLK-(%FREE(DBBLK-(52+4(X)))</FONT>
</P>

<P><FONT SIZE=3D2>Y&gt;=3DX*Z&nbsp; ADJ X TO GET =
&quot;TRUE&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n= bsp;&nbsp;&nbsp;&nbsp;&nbsp; ---------------------</FONT>
</P>

<P><FONT SIZE=3D2>step 3. TOTAL BLOCKS NEEDED.</FONT>
</P>

<P><FONT SIZE=3D2>TOT BLOCKS=3DROWS IN TABLE/ROWS PER BLOCK</FONT>
</P>

<P><FONT SIZE=3D2>TABLE SIZE =3DDBBLK SIZE * TOT BLOCKS / 1024 GIVES =
TABLE SIZE IN K.</FONT>
</P>

<P><FONT SIZE=3D2>Hope this helps,</FONT>
<BR><FONT SIZE=3D2>Ron Rogers</FONT>
<BR><FONT SIZE=3D2>DBA</FONT>
<BR><FONT SIZE=3D2>Atl.GA</FONT>
<BR><FONT =
SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb= sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb= sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb= sp;&nbsp;&nbsp; </FONT>
</P>

<P><FONT SIZE=3D2>&gt;&gt;&gt; sandeep.dubey_at_induscorp.com 06/23/00 =
11:14AM &gt;&gt;&gt;</FONT>
<BR><FONT SIZE=3D2>Hi gurus,</FONT>
</P>

<P><FONT SIZE=3D2>I asked to clear a doubt about row chaining, but have =
not rece'd any answer.</FONT>
<BR><FONT SIZE=3D2>I am asking again.</FONT>
</P>

<P><FONT SIZE=3D2>On a bulk Insert(and no update), will there be any =
row chaining at all? If</FONT>
<BR><FONT SIZE=3D2>yes, How to prevent it? If no, I have it although =
less than 1%.</FONT>
</P>

<P><FONT SIZE=3D2>Thanks in advance.</FONT>
</P>

<P><FONT SIZE=3D2>Sandeep </FONT>
</P>
<BR>

<P><FONT SIZE=3D2>-- </FONT>
<BR><FONT SIZE=3D2>Author: Sandeep Dubey</FONT>
<BR><FONT SIZE=3D2>&nbsp; INET: sandeep.dubey_at_induscorp.com </FONT>
</P>

<P><FONT SIZE=3D2>Fat City Network Services&nbsp;&nbsp;&nbsp; -- (858) =
538-5051&nbsp; FAX: (858) 538-5051</FONT>
<BR><FONT SIZE=3D2>San Diego, =
California&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Public Internet = access / Mailing Lists</FONT>
<BR><FONT =
SIZE=3D2>---------------------------------------------------------------= -----</FONT>
<BR><FONT SIZE=3D2>To REMOVE yourself from this mailing list, send an =
E-Mail message</FONT>
<BR><FONT SIZE=3D2>to: ListGuru_at_fatcity.com (note EXACT spelling of =
'ListGuru') and in</FONT>
<BR><FONT SIZE=3D2>the message BODY, include a line containing: UNSUB =
ORACLE-L</FONT>
<BR><FONT SIZE=3D2>(or the name of mailing list you want to be removed =
from).&nbsp; You may</FONT>
<BR><FONT SIZE=3D2>also send the HELP command for other information =
(like subscribing).</FONT>
</P>

<P><FONT SIZE=3D2>-- </FONT>
<BR><FONT SIZE=3D2>Author: Ron Rogers</FONT>
<BR><FONT SIZE=3D2>&nbsp; INET: RROGERS_at_galottery.org</FONT>
</P>

<P><FONT SIZE=3D2>Fat City Network Services&nbsp;&nbsp;&nbsp; -- (858) =
538-5051&nbsp; FAX: (858) 538-5051</FONT>
<BR><FONT SIZE=3D2>San Diego, =
California&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- Public Internet = access / Mailing Lists</FONT>
<BR><FONT =
SIZE=3D2>---------------------------------------------------------------= -----</FONT>
<BR><FONT SIZE=3D2>To REMOVE yourself from this mailing list, send an =
E-Mail message</FONT>
<BR><FONT SIZE=3D2>to: ListGuru_at_fatcity.com (note EXACT spelling of =
'ListGuru') and in</FONT>
<BR><FONT SIZE=3D2>the message BODY, include a line containing: UNSUB =
ORACLE-L</FONT>
Received on Fri Jun 23 2000 - 12:56:29 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US