Adding columns to a table of any arbitrary size is simply a DDL (data dictionary) operation. The only reason you'd need to visit every row is if the column you were adding was specifying a non-null default value. -Mark -- Mark J. Bobak Senior Oracle Architect ProQuest Information & Learning Ours is the age that is proud of machines that can think and suspicious of men who try to. --H. Mumford Jones, 1892-1980 ________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Roger Xu Sent: Tuesday, August 01, 2006 5:50 PM To: Oracle-L@Freelists. Org (E-mail) Subject: Add column(s) to an existing table Hi List, Does the following SQL touch every single row immediately? ALTER TABLE supplier ADD (supplier_tax_id varchar2(10), supplier_timezone varchar2(5) ); What is the best way to add column(s) to an existing table with millions of rows? Thanks, Roger This e-mail is intended solely for the person or entity to which it is addressed and may contain confidential and/or privileged information. Any review, dissemination, copying, printing or other use o ____________________________________________________________________ This email has been scanned for all viruses by the MessageLabs Email Security System.