I have table say table_A having many columns and millions of rows.There are two columns customerid,date on which index is created.I have a procedure which takes a lot of time to execute. On investigating the query plan i found that the below query is taking maximum cost and its a scanning enitre index(index scan).I am just posting the relevant query which is required.@start_date and @end_date are input params of the proc. declare @start_date datetime declare @end_date datetime select @start_date='20120601',@end_date='20120630' select date,min(status) as status from table_a with(nolock) where date between @start_date and @end_date and customerid in(select customerid from sometable) group by date But when i execute the same query as below select date,min(status) as status from table_a with(nolock) where date between '20120601' and '20120630' and customerid in(select customerid from sometable) group by date It ends up with index seek. Do i need to enable forced parameterization.What are the considerations to enable Forced Parameterization.Is there any other way the above query could be written so that uses the appropriate index.