日期:2014-05-17  浏览次数:20633 次

怎样加快like 的速度?
20~30张表,每张表50~60万行记录,表结构都相同。其中有4个字段,假设是a1,a2,a3,a4,类型都是nvarchar(30)。

我的问题是:

select * from table1 where a1 like '%str%' or a2 like %str%' or a3 like %str% or a4 like %str% union all
select * from table2 where a1 like '%str%' or a2 like %str%' or a3 like %str% or a4 like %str% union all
select * from table3 where a1 like '%str%' or a2 like %str%' or a3 like %str% or a4 like %str% union all
.........
select * from table30 where a1 like '%str%' or a2 like %str%' or a3 like %str% or a4 like %str%

str: 一个给定的字符串

怎样利用索引或者其它方法加快查询速度?
select 索引

------解决方案--------------------
这种需求下我觉得你用全文索引或者第三方软件来完成全文搜索更好,这中脚本没什么优化的空间了
------解决方案--------------------
不知道动态拼接SQL的效率怎么样.可以试试用SYSCOLUMNS表来读取表名
------解决方案--------------------
语句没啥好改的。。写个视图放一起,加个区别列一起查询吧。。也快不了多少