SQL效率问题,对比一下这两条语句,为什么效率相差这么远?

2024-11-05 19:26:00
推荐回答(2个)
回答1:

我觉得你可以在查询分析器里面开启查询计划,查看一下两个语句的开销瓶颈分别在哪里。
SQL本身就会优化用户写的SQL语句,我意思是SQL不见得按照用户的优化逻辑去去数据。
针对你这两条语句,我们可以看出第一条语句里面的XX已经是根据条件筛选出来的临时表,这个时候再和V_MakingItemStates进行join操作,join操作是逐条对比的,相当于缩小了范围。而第二条语句正好相反,左连接的左面数据太多,所以SELECT MakingID FROM AA WITH(NOLOCK) 的记录越多,那么前后两种语句的性能差异越大!

回答2:

对于性能问题楼猪还是把执行计划贴出来比较好分析。但看语句,第一句明显比第二句复杂。

建议你不要在where后的检索字段使用函数