10m rows should not be more than a few minutes unless there are lots of active transactions and/or indexes. I'd try to minimize outside lookups and by scanning the table (to be updated) first, get values from lookup tables and cache them locally then run simple updates. Then again we are talking about lack of more info :) Raj