Use the 'unique' property of fields only when you really need it. The best alternative will be to create a unique index if you need the uniqueness of field values.
If possible, delete indexes and disable triggers for the table where test data will be inserted. After you add the necessary data, restore the previous state.
Very large lists of values (including those loaded from files) can considerably reduce the performance and require a considerable amount of memory.
Controlling the number of records inserted within one transaction will allow you to have the acceptable size of the transaction log and achieve the best DBMS performance.Performance issues and selecting optimal rules in DTM Data Generator.