Hi, I have question about oracle heap tables vs. tables with b-tree index vs. IOT tables. Say I have a table T1 a) CREATE TABLE T1 (C1 NUMBER NOT NULL, C2 VARCHAR2(100)); b) CREATE TABLE T1 (C1 NUMBER NOT NULL, C2 VARCHAR2(100)); CREATE INDEX IDX_T1_C1 ON T1(C1); c) CREATE TABLE T1 (C1 NUMBER NOT NULL, C2 VARCHAR2(100), CONSTRAINT PK_T1_C1 PRIMARY KEY (C1) ORGANIZATION INDEX); d) CREATE SEQUENCE T1_SEQ INCREMENT BY 1; / ALTER TABLE T1 ADD SURR_KEY INTEGER NOT NULL; / ALTER TABLE T1 ADD CONSTRAINT PK_T1_C1_SK PRIMARY KEY (C1,SURR_KEY); / CREATE OR REPLACE TRIGGER T1_TRIG BEFORE INSERT ON T1 FOR EACH ROW BEGIN SELECT T1_SEQ.nextval INTO :NEW.SURR_KEY FROM dual; END; Questions: 1) Yes, a) is a heap table I know that, but b) is a heap table? 2) Is there any advantage of bumping up the C1 column to PK, like storage, performance? 3) Is b) and c) are the same? 4) Say my application is already out in the customers site, changing the C1 to PK would be tricky, instead can do solution d) ? Thank you Nik