In database management systems, block contention (or data contention) refers to multiple processes or instances competing for access to the same index or data block at the same time. In general this can be caused by very frequent index or table scans, or frequent updates. Concurrent statement executions by two or more instances may also lead to contention, and subsequently busy waiting for the process without the lock.
- To reduce contention for table blocks due to delete, select or update statements, reduce the number of rows per block. This can be done by using a smaller block size.
- To reduce contention for table blocks due to insert statements, increase the number of freelists, or buffer frames.
- To reduce contention for index blocks the best strategy is to implement a reverse index.
In most situations the goal is to spread queries over a greater number of blocks, to avoid concentrating on any single one.