Re: Large tables, updates, selects and varchars

From: <chrism778_at_gmail.com>
Date: Thu, 3 Apr 2008 05:10:22 -0700 (PDT)
Message-ID: <b87edbb3-e62f-4f9f-ad43-2b3913885f90@t54g2000hsg.googlegroups.com>


On Apr 2, 9:02 pm, DA Morgan <damor..._at_psoug.org> wrote:
> chrism..._at_gmail.com wrote:
> > I am using Oracle 10g (10.2.0.3.0) and have a large table (1+ billion
> > rows). It currently has about 15 columns in it. I have a requirement
> > for a new varchar2(4000) column to go with the current data in that
> > table. I need to update this column after it has been added to the
> > table. I have been told that I may be better off putting the column
> > in a separate table because by adding it to an existing table, Oracle
> > has to jump around the hard drive to update it and find it, and
> > therefore this will degrade performance. Of course, by putting it in
> > a separate table, a join will be required on selects.
>
> > From a purely design point of view, it makes a lot more sense to add
> > the column to the existing table, but I don't know the internals of
> > Oracle. When modifying existing tables on large Oracle databases, do
> > you generally have to be wary of what columns you add?
>
> > I can't really test this ahead of time--the update will take a very
> > long time to perform, because there are many rows and a calculation is
> > involved.
>
> > Thanks.
>
> 1+ billion rows with or without partitioning?
>
> Is this the last change that will ever take place or part of what may
> be ongoing modifications?
>
> How is the new column going to be used? Will most queries need to
> access the new data? Why VARCHAR2(4000) and not CLOB?
> --
> Daniel A. Morgan
> Oracle Ace Director & Instructor
> University of Washington
> damor..._at_x.washington.edu (replace x with u to respond)
> Puget Sound Oracle Users Groupwww.psoug.org

We are partitioning with between 35 million and 60 million rows per partition. This probably will not be the last change we are going to make. There are likely to be future modifications.

It's going to store file paths and most queries will need to access it. We chose VARCHAR2 because the size of the data will never exceed 4000 chars, and we assumed that CLOBs were less efficient than VARCHAR2s. Is this not the case? Received on Thu Apr 03 2008 - 07:10:22 CDT

Original text of this message