【发布时间】:2010-11-08 12:16:33
【问题描述】:
在 SQL Server (2005+) 中,我需要为 nvarchar(2000+) 的列(仅完全匹配)建立索引。解决此问题的最可扩展、最高效的方法是什么?
在 SQL Server (2005+) 中,对具有以下类型的列进行索引的实际区别是什么:
nvarchar(2000)char(40)binary(16)
例如查找索引的binary(16) 列会比查找索引的nvarchar(2000) 快得多吗?如果有,多少钱?
在某些方面显然越小越好,但我对 SQL Server 如何优化其索引以了解它如何处理长度还不够熟悉。
【问题讨论】:
-
您需要搜索还是强制执行唯一性?
-
@Alex 我需要强制唯一性,但只会进行完全匹配。
-
另一个想法是将你的 nvarchar 压缩成一个较小的二进制值,并在其上建立索引,但你能保证每个值总是压缩到 900 字节或更少吗?
标签: sql sql-server performance indexing