Sql Server中 Exists 关键字的大数据量性能问题

发布时间 2023-10-19 12:08:51作者: 贝壳11

如果要判断sql语句是否有值, 可能回用到 exists 

比如 if exists (Sql语句)        -- 业务逻辑代码 

若这样判断,当sql语句数据量很大,则判断很慢 ,我测试过 当100w 2 秒,当数据量达到 700w 则要22 秒 ,增加11倍 

替代方案,废弃用exists ,直接赋值一个变量 ,在判断变量值 ,sql如下

Declare @exists bit
Select top 1 @exists=1 From {sql语句}
if @exists =1     -- 业务逻辑代码 
这样测试下来 ,700w  用时4秒 

结论:用exists关键字 当数据量 达到 700w以上 速度变慢很厉害,100w 数据还看不出来,数据量超过500w以上慎用 exists