0

我们的应用程序连接到 SQL Server 数据库。有一列nvarchar(max)已添加,必须包含在搜索中。该数据库中的记录数只有几十万,并且只有几百人使用该应用程序。我被告知要探索全文搜索,这有必要吗?

4

2 回答 2

5

这就像问,我在 5 英里外工作,并被告知要考虑购买汽车。这是必要的吗?变量太多,无法为您的问题提供简单而正确的答案。例如,这是一次愉快的散步吗?有公共交通吗?你的日程安排灵活吗?下班后你必须去很远的地方吃午饭或跑腿吗?

如果您的典型搜索将是,全文搜索可以提供帮助WHERE col LIKE '%foo%'- 但是否有必要取决于此列将获得多大,您的搜索是否是真正的通配符搜索,您对毫秒与纳秒查询的容忍度,并发量,甚至是看似无关的东西,例如数据是否始终在内存中并且可以更有效地搜索。

更好的答案是您应该尝试一下。使用您的数据副本填充表,添加全文索引,并查看您的典型工作负载是否通过使用全文查询而不是LIKE. 可能会,但即使您添加的细节比球场行数更多,我们也无法确定。

于 2012-05-14T17:05:40.167 回答
0

在类似的情况下,我最终创建了一个更易于搜索和可索引的表结构,然后设置了一个批处理作业将记录从实时数据库复制到报告数据库。

在我的情况下,原始数据并不接近需要一个 nvarchar(max) 列,所以我可以摆脱它。你的旅费可能会改变。无论如何,答案是“尝试一些事情,看看什么对你有用”。

于 2012-05-14T17:13:18.427 回答