I/O is probably one the slowest of the resources. The information below gives a quick meaning of what these operators mean when you look at them in an execution plan. This specific concentrates on the “Estimated I/O Cost” value in an execution plan. I’ll post some other day in detail on how to decipher a SQL Server query execution plan.
Thanks to Niraj Mehta for putting together this content.
Table Scan
- The total number of data pages in the table
Clustered Index Scan
- The number of levels in the index plus the number of data pages to scan (data pages = #rows / #rows per page)
Non-Clustered Index Seek on a Heap (Bookmark Lookup)
- The number of levels in the index plus the number of leaf pages to read for qualifying rows plus the number of qualifying rows (1 I/O for each row on the heap)
Non-Clustered Index (I1) Seek on a Clustered index (I2) (Bookmark Lookup)
- The number of levels in the I1 index plus the number of leaf pages to read for qualifying rows plus the number of qualifying rows times the cost of searching for a clustered index (I2) key
Covering Non-Clustered index
- The number of levels in the index plus the number of leaf index pages to read for qualifying rows (#qualifying rows / # rows per leaf page).