What is the difference between Sequential Read and Direct Read

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:

topics