Because the repository engine sends updates to the database in a batch at transaction commit time, a single long transaction is preferable to many small ones. This is true for any combination of inserts, deletes, and updates. For moderate-sized objects, you should be able to update 25,000 objects within one transaction without hitting cache size limitations.
Use the automatic delete propagation feature of relationships wherever possible. This allows the engine to delete objects in a batch.