Database block access
- Last Updated: January 17, 2024
- 1 minute read
- OpenEdge
- Version 12.8
- Documentation
Database block access
When evaluating query efficiency, it is useful to consider
the number of times the server performs database block accesses
on behalf of the client. A disparity in the number of accesses to
records returned could indicate poor index selection. OpenEdge tracks
database block access on OpenEdge RDBMSs (but not on dataservers)
in the _userio-dbaccess field of the _userio Virtual
System Table as follows:
- For pre-pass queries, the number of blocks accessed is the difference between the number of block accesses immediately before the query starts building the result-list, and the number immediately after the query finishes building the list.
- For non-pre-pass queries, and for the reading of ABL records in pre-pass queries, the number of blocks accessed is the accumulation of accesses before and after each record fetch executed by the query.
A large number of database block accesses do not necessarily
indicate a poorly conceived query. The number stored in the _userio-dbaccess field
is a combined figure that includes both RM (data) and index block
accesses. Although a high count on index accesses might predictably
indicate inefficiencies in index use, a high count on RM accesses
might simply mean that records are scattered throughout the database
rather than in contiguous blocks. Thus, you have to weigh this value
with other statistical data to determine query efficiency.