sqlserver 中charindex/patindex/like 的比较
更新时间:2009年09月18日 23:27:44 作者:
sqlserver 中charindex/patindex/like 的比较,大家可以看下根据需要自行选择。
一、测试环境:
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只能匹配固定字符串
相关文章
sql server 2005因架构无法删除用户错误15138的解决方法
这篇文章主要介绍了Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除问题的解决方法 ,需要的朋友可以参考下2014-07-07
SQL2008中SQL应用之-锁定(locking) 应用分析
锁定(Locking)是一个关系型数据库系统的常规和必要的一部分,它防止对相同数据作 并发更新 或在更新过程中查看数据, 从而保证被更新数据的完整性。它也能防止用户读取正在被修改的数据 。2011-06-06
sqlserver2005 master与msdb数据库备份恢复过程
master与msdb数据库的备份与普通数据库一样,恢复master与msdb数据库关键在于以单用户模式启动,其它并没有太大的区别,下面详细说明使用方法2014-01-01
sqlserver2005自动创建数据表和自动添加某个字段索引
C#编程程序的时候,让程序自动创建数据表,然后给数据表添加索引,这个方法是在百度百科找到,我自已只是简单的修改了一下2012-06-06


最新评论