一、测试环境:
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只能匹配固定字符串
相关文章
- sqlserver中DataTime类型列使用Like时的问题
- SQL Server 中查找子串在字符串中的位置的函数PATINDEX()和CHARINDEX()
- 【转】SQLSERVER中如何快速比较两张表的不一样(包括自己的见解)
- 转载——SqlServer之like、charindex、patindex
- 如何在不使用LIKE的情况下比较SQL中的字符串
- sqlserver中比较一个字符串中是否含含另一个字符串中的一个字符
- sqlserver中的CHARINDEX用法
- SQLServer中Datetime类型数据的比较
- SQLSERVER2008中CTE的Split与CLR的性能比较
- SQLserver中字符串查找功能patindex和charindex的区别