字段1:ID ----- int 类型 主键
字段2:Content--ntext 类型
记录总量:20万条
需求:查找Content中包含某字符串strSearch的记录集合。
问题:由于SQLServer不支持ntext做索引或者主键,那么有没有办法使该查找操作加快?谢谢为盼。
7 个解决方案
#1
不要设置ntext.改为大一点的nvarchar.
#2
也可以把关键字另外存到一个字段,不过这样就麻烦点,需要多维护一下关键字,不过这是比较常用的做法。
#3
由于Content字段中有存在上万字的记录,顾难以设置较大的nvarchar,感谢两位,希望高手继续给以解答。
#4
如果content字段内容很多,即使加了索引,速度也快不到哪儿的。
#5
CrazyFor(Fan) :我也试验了一下您提出的按照分页来做以加快速度,虽然有所提高,但速度还是没有明显改善,对于这种需求,有什么好的建议吗?我想控制在10秒以内,但目前一般都在20-30秒,有点不爽。
#6
text and ntext当然用Full-Text Indexing了
#7
然后用下面的语句查询
============================================
SELECT ID,Content
FROM MyTable
WHERE CONTAINS(Content, @strSearch)
============================================
============================================
SELECT ID,Content
FROM MyTable
WHERE CONTAINS(Content, @strSearch)
============================================
#1
不要设置ntext.改为大一点的nvarchar.
#2
也可以把关键字另外存到一个字段,不过这样就麻烦点,需要多维护一下关键字,不过这是比较常用的做法。
#3
由于Content字段中有存在上万字的记录,顾难以设置较大的nvarchar,感谢两位,希望高手继续给以解答。
#4
如果content字段内容很多,即使加了索引,速度也快不到哪儿的。
#5
CrazyFor(Fan) :我也试验了一下您提出的按照分页来做以加快速度,虽然有所提高,但速度还是没有明显改善,对于这种需求,有什么好的建议吗?我想控制在10秒以内,但目前一般都在20-30秒,有点不爽。
#6
text and ntext当然用Full-Text Indexing了
#7
然后用下面的语句查询
============================================
SELECT ID,Content
FROM MyTable
WHERE CONTAINS(Content, @strSearch)
============================================
============================================
SELECT ID,Content
FROM MyTable
WHERE CONTAINS(Content, @strSearch)
============================================