• It depends...

    You should work with chunks of data (e.g. 100,000 rows in one chunk).

    Would it be okay if your tables are locked while insertion? It defines the possible count of rows to be inserted in one chunk.

    Depending on your data source you probably should use BCP or SSIS.

    It depends on your hardware.

    Could you give more specific information, please?