Hi Melissa,
thank you very much for your response. See attached file, these are all about the same query, the query is executed via sp_executesql and is parameterized. I cannot include the query itself because of company security reasons. As you can see also the query hash and plan handle are the same. I can assure you the statements and sql text are the same as well (apart from different parameter values). See my remarks below to your points.
Your queries might include more than one sql statement.
**>> That is not the case. It is one query only.
Frequency with the query/batch/procedure is called.
**>> I am not sure what you mean with this. It is a single call using sp_executesql.
Recompile.
**>> This is what I wondered. If a recompile would have happened, is it then so, that the number of logical reads for the sp_executesql can be higher than the sp_statement, because of SQL Server internal things?
Size of related tables and results return.
**>> Number of rows is same for sp_statement and rpc (see attached picture). Since it is one query only with sp_executesql it would even worse if that would be different :)
Performance of your memory/disk.
**>> How can that make a difference in logical reads?
Indexes or statistics on the related tables.
**>> Execution plan is the same for all of the ones I showed in the attached picture, but even if SQL server would do something different, it would not explain the difference in logical reads between the sp_statement and the rcp?
Network or protocol.
**>> All the same.
So, just to be sure, I am not talking about a difference in logical reads for the different executions, that is normal, it is about different parameters values, etc. I am talking about the difference in logical reads between the sp_statement and rpc (which is the sp_executesql).