Index scan means it retrieves all the rows from the table and index seek means it retrieves selective rows from the table.
Index Scan touches every row in the table it is qualified or not, the cost is proportional to the total number of rows in the table.
Thus, a scan is an efficient strategy if the table is small or most of the rows qualify for the predicate.
Index Seek only touches rows that qualify and pages that contain these qualifying rows.
The cost is proportional to the number of qualifying rows and pages rather than the total number of rows in the table.
They are two types of Indexes are there:
1. Clustered Index.
2. Non Clustered Index.
A non-clustered index can consist of one or more columns, but the data storage is not dependent on this create index statement as is the case with the clustered index.
For a table without a clustered index, which is called a heap, the non-clustered index points the row (data).
In the circumstance where the table has a clustered index, then the non-clustered index points to the clustered index for the row (data).
Although many implementations only have a single column for the clustered index, in reality a clustered index can have multiple columns.
Just be careful to select the correct columns based on how the data is used. The number of columns in the clustered (or non-clustered) index can have significant performance implications with heavy INSERT, UPDATE and DELETE activity in your database.