我有两个表:table1
包含一列nvarchar(2048)
(唯一值),table2
包含对table1
id的引用。
由于我无法索引nvarchar(2048)
我的问题是,我应该向table1
添加全文索引,还是应该向table1
添加另一个包含哈希值的列,以便我可以在哈希列上放一个索引,然后对哈希列进行检查吗?
在检查table2
之后,数据被插入table1
以查看是否存在值(如果没有,则将其插入table1
,然后获取用于存储的ID在table2
)。
不会在SQL中计算该哈希值。
就可扩展性,数据存储和性能而言,什么是更好的方法?
答案 0 :(得分:2)
我认为在这种情况下(唯一重要的是确保唯一性,不需要搜索/排序),您可以创建一个CLR UDF来生成散列,一个计算的持久列,用于保存由此函数计算的散列,以及该列的唯一约束。