当前位置:  开发笔记 > 程序员 > 正文

为什么LIKE会比=更快?

如何解决《为什么LIKE会比=更快?》经验,为你挑选了2个好方法。

一位同事最近遇到了这样一种情况:查询安全权限需要大约15秒才能使用= UserID(这是一个UNIQUEIDENTIFIER)进行比较.毋庸置疑,用户对此印象不足.

出于沮丧,我的同事改变了=比较以使用LIKE并且查询加速到1秒以下.

如果不了解数据模式(我无权访问数据库或执行计划),可能会导致性能发生这种变化?

(广泛而含糊的问题,我知道)



1> Chris Shaffe..:

它可能只是一个缓存的糟糕的执行计划; 更改为LIKE语句然后只是生成了一个新的执行计划.如果此人已在相关表上运行sp_recompile然后重新运行=查询,则可能已注意到相同的加速.



2> Mike Burton..:

另一种可能性是这是一个复杂的查询,并且每行都在=运算符之间进行类型转换.LIKE稍微改变了语义,因此类型转换不必在执行计划中占据重要地位.我建议你的同事看看执行计划中的=到位,看看是否有类似的东西

CONVERT(varchar, variable) = othervariable

在执行步骤中.在错误的情况下,单个类型转换可以使查询减慢两个数量级.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有