使用 SQL Server 2012,我有一个表,目前有几十万行,并且会增长。
在此表中,我有一个 nvarchar(30) 字段,其中包含医疗记录编号 (MRN) 值。这些值几乎可以是任何字母数字值,但不是单词。
例如,
DR-345687
34568523
*45612345;T
我的应用程序允许最终用户在搜索字段中输入一个值,例如“456”。应用程序需要返回所有三个示例记录。
目前,我正在使用 Entity Framework 5.0,并要求进行一种field.Contains('456')
搜索。
这总是需要 3-5 秒才能返回,因为它似乎是在进行表搜索。
我的问题是:在此列上创建全文索引会有助于提高性能吗?我还没有尝试过,因为我拥有的包含大量数据的数据库的唯一副本目前正在 QA 试验中。
查看全文索引的文档,它似乎围绕字段值中的单独单词进行了优化,因此我在不知道它可能如何影响我的查询性能的情况下犹豫是否要在创建索引时承受性能损失。