2013-02-08 43 views
2

我有一个只有6个字段的非常大的表。行数大约是2000万。我有一个聚集索引,包括一个整数字段。然而,有一个nvarchar(max)字段(不一定是唯一的,但从不为空),我经常需要搜索和问题是我不能索引它,因为SQL有索引大小的最大限制。我有什么解决方案?我对SQL不太熟悉,所以请避免使用技术术语。如何在sql server中非常大的表的非索引字段上执行高效的搜索

回答

2

听起来像是你将需要使用Full-Text Search

在SQL Server全文搜索可以让用户和应用程序对SQL Server表中基于字符的数据 全文查询。

...

这些列可以有以下任何数据类型:charvarcharncharnvarchartextntextimagexml,或varbinary(max)

不仅将您需要一个全文索引才能将索引添加到大文本列中......但是如果您要在这个大块文本中搜索部分匹配,例如searchin g对于在大文档中间的特定单词或短语,正常索引将是无用的,因为前导通配符(即, WHERE TextField LIKE '%Specific word or phrase%')会阻止您使用非全文索引。

+0

我明白了,我会尽量让全速在我的SQL服务器上进行文本搜索,看看它是否允许我为这个列编制索引。之后我会回复你的。感谢您的快速回复。 – user1715925 2013-02-08 19:20:48

0

没有索引的搜索无法高效。

全文搜索可在char, varchar, nvarcahr列完成。但是,如果创建全文索引,它总是会更好。

为什么它的工作原理与某些列了指数的原因 - 是为了让全文检索的扩展功能:语义,字间距,停用词等

相关问题