一、測試環境: 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只能匹配固定字符串