加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

为什么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,并找出要运行的最佳查询.看看每个这些查询的执行计划.当您使用变量时必须扫描.

如果范围总是很小,你可能可以使用索引提示来帮助这个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读