PATINDEX vs LEN性能MS SQL

时间:2013-05-15 16:34:41

标签: sql sql-server

这两个函数中哪一个能够更好地查找输入字符串的长度?

PATINDEX ('%%{terminator}%%',inputString) 

LEN(inputString)

1 个答案:

答案 0 :(得分:3)

sql server中字符串的长度通常与文本分开存储。您不必走绳子就知道它有多长。它只是一个查找或查找,然后从字符串的 end (用于检查尾随空格)而不是从头开始。假设您能够构造PATINDEX以返回字符串的最后一个索引,那么仍然需要您遍历字符串以评估长度。我想你可以构建一个PATINDEX更快的场景,但前提是你的字符串主要由尾随空格组成。

所以LEN()以你能想到的任何方式赢得胜利:语义(最好地传达你正在做的事情的意思),正确性(让PATINDEX变得很难)和性能。