SQL:Index nvarchar(2048) - 全文与散列

时间:2011-05-24 15:17:58

标签: sql-server sql-server-2008 indexing

我有两个表:table1包含一列nvarchar(2048)(唯一值),table2包含对table1 id的引用。

由于我无法索引nvarchar(2048)我的问题是,我应该向table1添加全文索引,还是应该向table1添加另一个包含哈希值的列,以便我可以在哈希列上放一个索引,然后对哈希列进行检查吗?

在检查table2之后,数据被插入table1以查看是否存在值(如果没有,则将其插入table1,然后获取用于存储的ID在table2)。

不会在SQL中计算该哈希值。

就可扩展性,数据存储和性能而言,什么是更好的方法?

1 个答案:

答案 0 :(得分:2)

我认为在这种情况下(唯一重要的是确保唯一性,不需要搜索/排序),您可以创建一个CLR UDF来生成散列,一个计算的持久列,用于保存由此函数计算的散列,以及该列的唯一约束。