The database table indexes are used by the database itself when compiling the SQL execution plan that LINQ2SQL gives it to execute. It is completely hidden from LINQ2SQL, which itself is sent via ADO.NET to access the database.
So, the simple answer is: yes, LINQ2SQL uses table indexes, but only by default, because the database itself uses them.
source
share