我知道这是一个非常基本的问题,我认为我知道答案......但我想确认一下。
这些查询真的相同吗?
SELECT * FROM FOO WHERE BAR LIKE 'X'
SELECT * FROM FOO WHERE BAR ='X'
使用没有外卡时可能会有性能开销?
我有一个可选择使用LIKE&外卡。 SP目前做类似的并附加外卡 - 我想只是更新查询使用,但让应用程序根据需要附加外卡。
答案 0 :(得分:26)
正如@ocdecio所说,如果优化器足够智能,那么应该没有区别,但是如果你想确定幕后发生的事情,你应该比较两个查询的执行计划。
答案 1 :(得分:11)
来自here
的Matt Whitfield的原始答案 library(raster)
R1 <- raster(nrows=108, ncols=21, xmn=-19, xmx=19,ymn=2, xmx=29)
###Let's assume the classified raster is D1, I'll like to use the classes of D1 within the boundaries of R1 to extract classified information form R1.
RD1<-extract(R1, D1) ### where D1 is a raster with classes
和=
之间存在差异。使用LIKE
执行字符串比较时,模式字符串中的所有字符都很重要。这包括前导或尾随空格。
因此,如果您的列为LIKE
或char
而不是nchar
或nvarchar
,则由于尾随空格会产生不同的结果。
重现此行为的小例子:
varchar
答案 2 :(得分:7)
任何好的优化器都会将第一个表达式减少到第二个表达式。