搜索nvarchar(max)字段

时间:2012-05-14 16:57:40

标签: sql-server

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

2 个答案:

答案 0 :(得分:5)

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

如果您的典型搜索将是WHERE col LIKE '%foo%',则全文搜索可以提供帮助 - 但是否有必要取决于此列的大小,您的搜索是否为真正的通配符搜索,以及您对毫秒级的容差vs 。纳秒查询,并发量,甚至看似无关紧要的东西,比如数据是否总是在内存中,并且可以更有效地搜索。

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

答案 1 :(得分:0)

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

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