我有一个SQL Server 2005数据库,其中包含一个包含4000万条记录的表。每条记录都包含一个存储逗号分隔的关键字列表的列。每个关键字都是字母和数字的组合。关键字长达7个字符,平均每条记录有15个关键字。关键字在行之间不是唯一的。
我想搜索全部或部分关键字。
我创建了全文索引,显示了328,245,708个唯一键数。搜索效率适用于4个或更多字符的查询(在测试计算机上大约 100ms ),但对于具有3个或更少字符的查询来说效率太慢(最高 3s 在试验机上)。
我一直在尝试排序CONTAINSTABLE
的{{1}}和CONTAINS
个查询,结果相似。
我认为短查询的性能较慢,因为较短的单词会更频繁地在不同的记录中重复。
对结果进行排序并不重要,我一直在尝试按'[query]*'
的Rank排序TOP X
结果。这不能提供所需的性能。
如何在短期查询中更快地进行此搜索?