Oprettelse af indeks efter dataindsættelse er mere effektiv måde (det anbefales endda ofte at droppe indeks før batchimport og efter import genskabe det).
Syntetisk eksempel (PostgreSQL 9.1, langsom udviklingsmaskine, en million rækker):
CREATE TABLE test1(id serial, x integer);
INSERT INTO test1(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
-- Time: 7816.561 ms
CREATE INDEX test1_x ON test1 (x);
-- Time: 4183.614 ms
Indsæt og opret derefter indeks - ca. 12 sek.
CREATE TABLE test2(id serial, x integer);
CREATE INDEX test2_x ON test2 (x);
-- Time: 2.315 ms
INSERT INTO test2(id, x) SELECT x.id, x.id*100 FROM generate_series(1,1000000) AS x(id);
-- Time: 25399.460 ms
Opret indeks og indsæt derefter - ca. 25,5 sek (mere end to gange langsommere)