During the SQL Server Optimization training, I enjoy teaching Execution Plans. I am always sure that questions related to estimated cost will be raised by attendees. Following are some common questions related to costs:
Q: What is the estimated I/O cost?
Q: What is the estimated CPU cost?
Q: Why there is no unit of measurement for estimated costs?
There are several other questions. However, let me try to answer the above questions today.
Estimated I/O Cost and CPU Cost are just cost estimations as the names suggest. SQL Server Query Optimizer uses the cost to make the decision on selecting the most efficient execution plan. When any query is executed, the SQL Server Query Optimizer prepares several alternative execution plans to execute the query. Each alternative plans each operation and assign some type of cost on the basis of the heuristic data. This estimated number just implies the amount of work CPU or I/O has to do to complete the task. Due to this reason, there is no unit assigned for these estimations. These estimates should be used by us in the same way by which the SQL Server uses it – The estimate should be used to compare different queries with each other.
Let me know your thoughts on this. Do post here if you have any other questions. I will post the answers in separate posts.
Reference: Pinal Dave (http://blog.SQLAuthority.com)