It is a very common misconception that "sequential reads in SM50 means that a full table scan is executed and an index is not used". The correct definition/concept is:
Direct read
The term "Direct read" refers to accesses in which a maximum of one line is returned by the database. This includes summarization queries such as SELECT COUNT and fully-qualified primary key accesses.
Sequential Read
A "Sequential Read" refers to all other read database accesses, in which there may be more than one line returned. It is true that the term "Sequential read" is a little deceptive since it implies that blocks are always read sequentially (as in a full table scan). In reality, however, when you perform a trace on these queries you will see that index is used in most cases.
So, "Direct read" and "Sequential read" in SM50 are worthless for a performance analysis. It only shows that the processes are running and processing one of the queries directed at the database interface.
For expensive SQL statements analysis, "Reads/User Calls" value (TCODE BACOCKPIT or ST04OLD) is an indication. If this value is above 15, the SQL statements should be checked in detail.
No comments:
Post a Comment