我有一个SQL查询运行超快,大约一秒钟,当不使用变量,如:
WHERE id BETWEEN 5461094 and 5461097
但是当我有:
declare @firstId int declare @lastId int set @firstId = 5461094 set @lastId = 5461097 ... WHERE id BETWEEN @firstId and @lastId
解决方法
这是因为当值被硬编码时,它可以查找表中数据的
the statistics,并找出要运行的最佳查询.看看每个这些查询的执行计划.当您使用变量时必须扫描.
如果范围总是很小,你可能可以使用索引提示来帮助这个.