我在 SQL Server 2008 R2 数据库中有一个表
Article (Id, art_text)
Id 是主键。
art_text 有全文索引。
我搜索包含“house”一词的最新文章,如下所示:
SELECT TOP 100 Id, art_text
FROM Article
WHERE CONTAINS(art_text, 'house')
ORDER BY Id DESC
这会返回正确的结果,但速度很慢(约 5 秒)。该表有 2000 万行
其中 350,000 个包含 house 一词。我可以在查询计划中看到,对于全文索引返回的 350,000 个 Id,在聚集索引中执行了索引扫描。
如果有一种方法可以仅获取全文索引中包含单词“house”的最新 100 个条目,则查询速度可能会快得多。有什么方法可以使查询更快吗?
简短的回答是肯定的,有一些方法可以让这个特定的查询变得更快,但是对于 2000 万行的语料库,5 秒也不错。您需要认真考虑以下建议是否最适合您的 FT 搜索工作负载,并权衡成本与收益。如果你盲目地执行这些,你的日子就会很糟糕。
提高 Sql Server 全文搜索性能的一般建议
减少正在搜索的全文索引的大小
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)