使用Server 2012,我得到了一个表,该表目前有几十万行,而且还会增长。
在这个表中,我有一个nvarchar(30)字段,其中包含医疗记录编号(MRN)值。这些值可以是任何字母数字值,但不是单词。
例如,
DR-345687
34568523
*45612345;T我的应用程序允许最终用户在搜索字段中输入一个值,比如'456‘。应用程序需要返回所有三个示例记录。
目前,我正在使用EntityFramework5.0,并要求field.Contains('456')类型的搜索。
这通常需要3-5秒才能返回,因为它似乎是在进行表搜索。
我的问题是:会在这个专栏上创建一个完整的文本索引来帮助性能吗?我还没有试过,因为我有大量数据的数据库的唯一副本目前正在QA测试中。
查看全文索引的文档时,似乎围绕字段值中的单独的words对其进行了优化,因此我不太愿意在不知道它可能如何影响查询性能的情况下使用性能测试来创建索引。
发布于 2013-06-27 11:47:27
EF不会使用访问Server全文索引(http://msdn.microsoft.com/en-us/library/ms142571.aspx#queries)所需的to关键字,因此如果没有更多的工作,您的解决方案就不会运行。
我认为您必须创建一个SProc来使用FTI获取数据,然后让EF调用它。我也有类似的问题,很想知道你的结果。
安迪
https://stackoverflow.com/questions/16341594
复制相似问题