• Hi Guys,

    I took a look at the MSDTC article. I have been down that path before during setup.

    I guess the question is why use a transaction at all when doing a large ETL jobs.

    Here are some ideas that might be quicker overall.

    1 - If you can get away with an UPSERT, do it. It is better than trying to roll back a huge load.

    It is also restartable. Use a hosptial table to direct errored out rows for research of post processing.

    2 - Create a database snapshot before the load. All changed records will go to this sparse file.

    When the job errors out, stop the ETL. Use a database restore to put the data back to a steady state.

    I ended up rewriting a database warehousing project recently. Plan 1 worked our very well since I did a singe pass of 10 M rows and then did several passes against the hospital table to fix data integrity issues.

    In summary, always question why you are going down a path before you start.

    Good luck

    John Miner
    Crafty DBA
    www.craftydba.com