• Have used NOLOCK for years for batch processing requirements to attempt to avoid the impact of on-going updates when these updates do not impact the underlying batch process(different columns in same table(s) being updated).

    Have seen a nasty side effect of NOLOCK in very high transaction environment (multiple updates per second) with queries being executed multiple times per second:  the SELECT statement used for the NOLOCK can fail due to "block read" issues.  Apparently the optimizer can get confused on which blocks to read (UNCOMMITED versus COMMITTED).