【发布时间】:2011-09-11 05:00:09
【问题描述】:
只是想知道
我同事对我说不要使用columnName='',而是使用Len(columnName)==0
当我查询某些内容并且我想要表中值为 null 或空的所有列时发生这种情况。
对空字符串使用 len i/o 测试有什么好处吗?我什么都看不到。
谢谢
【问题讨论】:
-
通常您不希望在函数调用中包装列,因为这是不可分割的,并且意味着索引和列统计信息都不能使用。 Is it faster to check if length = 0 than to compare it to an empty string? 的可能重复项
-
@Martin Smith
Lencould 似乎是 sargable 但是......如果选择它作为这样的优化来实现(所有字符串长度相同在索引中是连续的),因此它可以转换为(意图等效的)name > "AAA" and name < "ZZZ"。我不知道是否应用了这样的优化,或者索引(如果有的话)对实际性能的影响是什么,只是一种思考。 -
@pst 所有相同长度的字符串在一个索引中不连续,它们按照排序规则按字典顺序排列?
-
@Martin Smith Doh。你完全正确。我不太确定我在想什么......
标签: sql-server tsql sql-server-2008