为大于 900 字节的 varchar 列创建索引

dub*_*ech 5 index sql-server-2008 sql-server

我在 SQL Server 2008 中有一个 var char 列,它通常小于 100 字节,但在某些情况下可能会高达 5607 字节。我需要索引它,但我不能,因为 SQLServer 中的最大索引大小是 900 字节。

世界上有什么方法可以向此列添加任何类型的索引吗?例如,在前 900 个字节上创建索引?

谢谢

Aar*_*and 6

如果您需要一个索引,因此在前 n 个字符上搜索效果很好(其中 n <= 900 字节),您可以创建一个 LEFT(column, n) 的计算列并对其进行索引。如果你想要一个精确匹配的索引,对不起,除非你使用校验和或类似的,否则我知道没有办法做到这一点。你能解释一下实际的业务问题吗?您认为哪些字符串 > 900 字节会从这样的索引中受益,为什么?