• I suspected it was due to load on the main database that is why I suggested pulling from a database snapshot instead of directly from the databases.

    another way of avoiding impact on the heavily used database would be to use replication to a reporting instance and SSIS can pull from there and merge with the DW. I saw a proof a concept where change data capture was turned on in the replicated database and then SSIS could use the change data functions to find the specific keys that had been add/changed then pulled those from the replicated data and loaded into DW. This achieved near real time DW reporting without impact to the primary database at all.