Block contention

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.[1][2]

Solutions

  • 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.

gollark: Why?
gollark: Skynet Relay could in the end be *more* trustable if I build in some way to verify that the actual relay sent it without relying on server priviliges.
gollark: The way I see it, any message sent is, strictly speaking, a valid message someone sent and should be visible.
gollark: https://osmarks.tk/skynet/So this is a great modem monitoring tool too!
gollark: The skynet relay also does modem IO.

References

  1. Antognini, Christian (2008). Troubleshooting Oracle Performance. Apres. pp. 543–546. ISBN 1-59059-917-9.
  2. Burleson, Don (2005). Oracle Silver Bullets. Rampant TechPress. p. 123. ISBN 0-9759135-2-2.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.