I attempted to improve the following query that is getting executed continuously:

SELECT TOP(?) Schema1.Object1.Column1, Schema1.Object1.Column2, Schema1.Object1.Column3
FROM         Schema1.Object1 INNER JOIN
Schema1.Object2 ON Schema1.Object1.Column4 = Schema1.Object2.Column1 INNER JOIN
Schema1.Object3 ON Schema1.Object2.Column5 = Schema1.Object3.Column1 LEFT OUTER JOIN
Schema1.Object4 ON Schema1.Object1.Column6 = Schema1.Object4.Column7 LEFT OUTER JOIN
Schema1.Object5 ON Schema1.Object5.Column1 = Schema1.Object1.Column8
WHERE     (Schema1.Object1.Column3 > ?)
ORDER BY Schema1.Object1.Column3 ASC


Object1.Column3 is of type ROWVERSION. The execution plan showed a Clustered Index Scan on Object1.Index1 to filter on Object1.Column3. -> The original Plan.

Subtree Total costs of the plan is 59. DOP = 4.

The IO stats of the original version is the following:

So it was obvious to create a nonclustered index using ROWVERSION. I applied the following index:

CREATE Nonclustered index index1 ON dbo.Object1
(Column3) INCLUDE  (Column4,Column3,Column2,Column1,Column8);


This changed the plan as expected to perform an index seek operation as you can see in the new plan.

Subtree Total costs of the new version is 0.33 now. DOP = 1.

But what confuses me is the io statistics. Did it downgrade / get worse? The joined Object2 suddenly produces more IO than before (where for unknown reasons it was not even present in the statistics)...: