We're proposing to delete no-longer-relevant Case Team Member records, numbering about 4.3 million (2.8 million total Cases). I'm concerned about the performance implications that might be caused by the sharing recalculations this touches off.
Both Case and Account have the Organization-Wide Default set to Private. There are several dozen sharing rules in place on Case, all of which are based on ownership.
I understand that Case Team membership grants an implicit parent share to the Account, and hence that parent-child data skew from Case to Account could cause very expensive sharing recalculations at difficult-to-predict points in the process of removing these records. We do have data skew, with about 400 Accounts having over 1,000 cases and 24 having more than 10,000 (the worse offender has north of 200k).
The mitigation that's usually recommended for this type of issue is to defer sharing rule calculation, which doesn't apply here, or to reduce data skew, which is a whole other ball of wax.
Are there other strategies I should be looking at to ensure that this bulk delete (a) can complete successfully and (b) does not negatively impact the performance of the rest of my instance? Alternately, am I unduly concerned, and may I simply expect that a bulk API job or batch takes a really long time to complete?