日期:2014-05-18  浏览次数:20446 次

如何提高根据文本的匹配返回数据的速度
平台是MSSQL2000.

有个个人资料的信息表,约有200w条记录。
如何提高根据文本的匹配返回数据的速度。
比如我要查找姓“张”的人,或者名字里面带“泽”的人等等。
现在查询返回结果集的时间很长。

请问如何能提高返回速度。需要如何设置索引,需要什么格式的select的语句可以提高速度,是否需要应用到视图等等。
希望大家能给点建议,谢谢了。

------解决方案--------------------
使用like , charindex等,对该列的索引失效.

查询办法为:

查找姓“张”的人

select * from tb where left(姓名,1) = '张'
select * from tb where 姓名 like '张%'

名字里面带“泽”的人

select * from tb where 姓名 like '%泽%'
select * from tb where charindex('泽' , 姓名) > 0

------解决方案--------------------
看看~
------解决方案--------------------

要不考虑用全文索引试一试!
------解决方案--------------------
探讨
使用like , charindex等,对该列的索引失效.

查询办法为:

查找姓“张”的人

select * from tb where left(姓名,1) = '张'
select * from tb where 姓名 like '张%'

名字里面带“泽”的人

select * from tb where 姓名 like '%泽%'
select * from tb where charindex('泽' , 姓名) > 0

------解决方案--------------------
建议用姓名字段建立全文索引。
因为复合索引在like查询时前面带%的情况下基本无效。