This is my first message here so firstly i would like to say 'Hello'. I have a problem i hope that you will help me because i am stuck. 1. At the beginning i cleaned the buffer(data cache) executing DBCC FREEPROCCACHE and DBCC DROPCLEANBUFFERS 2. Then i run SET STATISTICS IO ON to have a statistics after query execution. 3. I run select * from [table] and i've got following message in sql serv management studio in Message tab : 10000 row (s) affected) Table 'person'. Scan count 1, logical reads 318, physical reads 0, read - ahead reads 332, lob logical reads 0, lob physical reads 0, lob read - ahead reads 0 In this point i have a question. Why i have physical reads 0 although this was a first execution of query?? What's more i cleaned buffers so i expected that i will be have many physical reads! This is what i dont understand at all. 4. I found in the internet that i can check also costs of executed query in sys.dm_exec_query_stats table so i found a row which stored costs of "select * from [table]" and compare result with the results from point3. What's occured. In the table sys.dm_exec_query_stats i found following data [column - value]: last_physical_reads - 13 ( in point 3 i have 0) last_logical_reads - 322 (in point 3 i have 318 ) So the most important question of this topic is why i have these differences and which data are correct. These from point 3 or this from sys.dm_exec_query_stats?? I hope you understand me correctly and sorry for my mistakes i don't speak english very well Regards!