sqlserver 中charindex/patindex/like 的比较
程序员文章站
2022-11-23 12:16:34
一、测试环境: 1。数据库:sql server 2008 2。测试表:15000记录,char类型主键,无其他索引 3。测试字段:ntext 类型,最大数据长度12000...
一、测试环境:
1。数据库:sql server 2008
2。测试表:15000记录,char类型主键,无其他索引
3。测试字段:ntext 类型,最大数据长度12000
二、测试语句:
1。select * from producttemp where productdesc like '%192.168.70.236%'
2。select * from producttemp where charindex('192.168.70.236',productdesc)>0
3。select * from producttemp where patindex('%192.168.70.236%',productdesc)>0
三、测试结果:
1。效率测试结果: charindex > like > patindex ,效率差大概20%
2。适用性测试结果:
1)charindex对于检索结果最大位移有要求,经测试,sql2008中的ntext字段,位移不能超过3987,否则返回0;
2)patindex 和 like 无位移限制;
3)patindex 支持匹配表达式,可以应用正则;
4)like可以用'%oldstring%'进行模糊匹配;
5)charindex只能匹配固定字符串
1。数据库:sql server 2008
2。测试表:15000记录,char类型主键,无其他索引
3。测试字段:ntext 类型,最大数据长度12000
二、测试语句:
1。select * from producttemp where productdesc like '%192.168.70.236%'
2。select * from producttemp where charindex('192.168.70.236',productdesc)>0
3。select * from producttemp where patindex('%192.168.70.236%',productdesc)>0
三、测试结果:
1。效率测试结果: charindex > like > patindex ,效率差大概20%
2。适用性测试结果:
1)charindex对于检索结果最大位移有要求,经测试,sql2008中的ntext字段,位移不能超过3987,否则返回0;
2)patindex 和 like 无位移限制;
3)patindex 支持匹配表达式,可以应用正则;
4)like可以用'%oldstring%'进行模糊匹配;
5)charindex只能匹配固定字符串
上一篇: 吃水果会胖吗,告诉你一些不为人知的秘密
推荐阅读
-
SQLSERVER2008中CTE的Split与CLR的性能比较
-
sqlserver 中charindex/patindex/like 的比较
-
SqlServer 中 Like 带参 与 In带参的用法详解
-
SQLSERVER2008中CTE的Split与CLR的性能比较 <转>
-
SQLSERVER2008中CTE的Split与CLR的性能比较 <转>
-
SQLSERVER2008中CTE的Split与CLR的性能比较
-
SQLSERVER2008中CTE的Split与CLR的性能比较
-
oracle中Like与Instr的性能比较
-
sqlserver 中charindex/patindex/like 的比较
-
SQLSERVER2008中CTE的Split与CLR的性能比较