sqlserver 中charindex/patindex/like 的比较

Gabriela ·
更新时间:2024-11-13
· 811 次阅读

一、测试环境:
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中使用扩展事件获取Session级别的等待信息及SQLServer 2016中Session级别等待信息的增强sqlserver 模糊查询常用方法SqlServer使用 case when 解决多条件模糊查询问题SqlServer中模糊查询对于特殊字符的处理方法MSSQL Server 查询优化方法 整理SqlServer参数化查询之where in和like实现之xml和DataTable传参介绍SqlServer参数化查询之where in和like实现详解SqlServer2016模糊匹配的三种方式及效率问题简析



patindex LIKE charindex sqlserver

需要 登录 后方可回复, 如果你还没有账号请 注册新账号