为什么SQL Server在使用变量时变慢?
发布时间:2020-12-12 16:13:43 所属栏目:MsSql教程 来源:网络整理
导读:我有一个sql查询运行超快,大约一秒钟,当不使用变量,如: WHERE id BETWEEN 5461094 and 5461097 但是当我有: declare @firstId intdeclare @lastId intset @firstId = 5461094set @lastId = 5461097... WHERE id BETWEEN @firstId and @lastId 查询运行速度
我有一个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,并找出要运行的最佳查询.看看每个这些查询的执行计划.当您使用变量时必须扫描.如果范围总是很小,你可能可以使用索引提示来帮助这个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |