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

如何能提高数据库nvarchar(MAX)字段的like查询性能?
如何能提高数据库nvarchar(MAX)字段的查询性能。

表:demotable
两个字段:id(递增字段),content(nvarchar(MAX))

大概100万条记录,查询关键词 keyword

select top 10 * from demotable where content like '%keyword%'

每次得到查询结果都非常慢,请问有什么好的方法能提高插叙速度,怎么做?
谢谢!

------解决方案--------------------
你用全模糊查询,加索引都没用了,
SQL code
select top 10 * from demotable where charindex(keyword,content)>0

------解决方案--------------------
SQL code

select top 10 * 
from demotable 
where content like 'keyword%'

--or

select top 10 * 
from demotable 
where charindex('keyword',content)>0

------解决方案--------------------
探讨
引用:
SQL code

select top 10 *
from demotable
where content like 'keyword%'

--or

select top 10 *
from demotable
where charindex('keyword',content)>0


速度差不多,区别不大,请大家继续帮忙……

------解决方案--------------------
http://www.etaonet.com/news/3/14/124
------解决方案--------------------

SQL code
Create index in_dex on test(content) --test表名

------解决方案--------------------
一般都操过了8000个字符串
那是很大哦就是你选出来的时间也会很长啊。
看看全文索引能否满足你的要求嘛。
------解决方案--------------------
探讨
再次麻烦大概给个能提高效率的方法。
表:demotable
两个字段:
id(递增字段)
content[nvarchar(MAX)]
--nvarchar(MAX) 的类型不能用作索引中的键列
--content的内容一般都操过了8000个字符串,只能是nvarchar(MAX)类型的字段,不能改为其他类型的字段

大概100万条记录,查询关键词 keyword

sel……

------解决方案--------------------
这个快不了,你用全文索引试试吧
------解决方案--------------------
%%虽然用不到索引 但是加索引仍然能提高查询速度的 

具体的可以用事件探查器来跟踪一下
------解决方案--------------------
全文索引看看吧