• I would be hesitant about deleting duplicates in the same statement that finds them. If the table was non trivial size (ie. you didnt want to hand list the record keys to be deleted)

    Any long running scan of the table looking for duplicates could cascade its lock to table level.

    Generated record deletes in small transactions would have less impact if the system was live.