SQL 2008: 这很慢(需要1 1/2分钟):
declare @p1 varchar(50) set @p1 = '976j%' select * from invsearch_query where comparepnfwd like @p1
这需要不到一秒的时间:
select * from invsearch_query where comparepnfwd like '976j%'
为什么???
答案 0 :(得分:9)
我认为你必须有一个非覆盖索引,其中前导列comparepnfwd
由文字查询使用,而不是由带有变量的查询使用。
您可以使用OPTION (RECOMPILE)
让SQL Server重新编译计划,同时考虑实际的变量值。