Locks Held During Data Movement

Adaptive Server performs data movement one allocation unit at a time, and holds short-duration blocking locks on individual objects.

While processing a given allocation unit, data movement:
  1. Obtains the object ID of the next extent to be processed
  2. Obtains an exclusive table lock on that object
  3. Processes all extents on this allocation unit owned by the locked object
  4. Drops the lock

Although the blocking lock stalls other operations on the locked object, the lock is held only briefly. Because shrink database operations must wait for the server to grant exclusive locks, the performance of shrink database operations may suffer when there are concurrent activities on the table.