REINDEX or REBUILD the indexes of a table after truncating it and then repopulating it?
If your data is not sorted (by the indexed columns), the maintenance of indexes during the load of large amount of data may have some serious overhead because of the leaf node splits (not 90-10 splits), so: 


truncate the table
alter index ... unusable on all indexes
load data
alter index ... rebuild on all indexes


This will work if SKIP_UNUSABLE_INDEXES is set to true, which is the default value, but keep this in mind:


  If an index is used to enforce a UNIQUE constraint on a table, then
  allowing insert and update operations on the table might violate the
  constraint. Therefore, this setting does not disable error reporting
  for unusable indexes that are unique.


Alternatively, yes, you can drop the indexes before the load, and recreate them after.