How can I find a record in a table that is accessed by more than one user concurrently?
There is no way to find out how many concurrent users are accessing a row in a table. By careful examination of certain hidden 'X$' tables, we can find out which blocks of a table are in the buffer cache. From there, we can examine the amount of times that block has been "touched" or read. But nowhere can we get an idea of a specific row being concurrently accessed by multiple users. This is due to the fact that the touch count on a block is for all rows in the block! If there are five rows in a block and that block is touched five times, does this mean that one of the rows was read five times, that each of the five rows was read once, or some other combination? And we can't find out how many users requested this block (at least not with any resemblence to accuracy).
For More Information
- What do you think about this answer? E-mail us at editor@searchDatabase.com with your feedback.
- The Best Oracle Web Links: tips, tutorials, scripts, and more.
- Have an Oracle tip to offer your fellow DBA's and developers? The best tips submitted will receive a cool prize--submit your tip today!
- Ask your technical Oracle questions--or help out your peers by answering them--in our live discussion forums.
- Ask the Experts yourself: Our Oracle gurus are waiting to answer your toughest questions.
Dig Deeper on Oracle database design and architecture
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.