UNIQUE index vs. PRIMARY KEY constraint to rebuild Oracle indexes and constraints
I am rebuilding indexes and constraints on a very large table and need to accomplish this as fast as possible.
If I create a UNIQUE index on this table (4 concatenated not null columns) AND use the alter table command to enforce the primary key, is this totally redundant?
Here are the statements I'm using and the elapsed time it is taking.
1) Create unique index X on X nologging (53 minutes).
2) Alter table X add constraint X primary key (col1, col2, col3) using index (one hour 50 minutes).
Technically, a UNIQUE index and a PRIMARY KEY constraint are a little different. Both enforce uniqueness, but the PK constraint also ensures that all values in the columns cannot be NULL. But to cut down on the time, I would just perform one statement, the ALTER TABLE ADD CONSTRAINT command. This will build the index and enable the constraint in one operation.
This was first published in December 2008