Hi, You could also do some testing using the locking options available to you via the SAS/Access to Oracle engine, namely: READ_LOCK_TYPE, READ_ISOLATION_LEVEL, UPDATE_LOCK_TYPE. Additionally I would specifically set a small size for DBCOMMIT, so that the duration of row locks created during Update statements are reduced, making those rows available again for other update statements. This will slow down the update statement processing overall, but should help with your problem of row lock contention. A couple of additional suggestions/comments that may help: 1. Your query uses DateTime - do you actually need Datetime for your campaign logic (i.e. do you calculate based on hours or minutes of the day ? or do you only use the Date portion ie your contact policy works in number of whole days)? If not then perhaps you could also include a where clause that filtered customers who had already been updated today: WHERE LAST_TELEMARKETING_DT < TODAY(), because the logic only cares about the date rather than the hour or minute. 2. What is the purpose of the WHERE Clause on Customer_RK ? Without knowing the details it seems redundant given that your campaign is at account level, the intable has account_rks. Removing this should speed up the query, and therefore also reduce lock contention Cheers James
... View more