What is the difference between a predicate and a seek predicate?

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

If you look at the Index Seek operator in a query plan of a SQL Server SELECT query, you will sometimes see that you have both a Seek Predicate and also a Predicate.

So what is the difference between these two properties of the Index seek?

Seek Predicate is the seek operation that uses the b-tree part of the index to find matching rows.

Predicate is an operation that after the Seek Predicate operation does additional filterin using non-key columns (and sometimes also on indexed columns). If this is a non clustered index it seems unintuitive to me that we would not use only Seek Predicate (except on included columns) but I have seen i happen, and my theory so far is that it might be related to statistics.

In any case, you should expect much better performance from Seek Predicate operations only Index seeks compared to Index Seeks that include both Seek Predicate and Predicate properties.