我不确定如何更好地表达这个问题,所以我可能错过了之前提出的问题。随意关闭它并指出正确的一个(如果存在)。
我有一个包含两个重要列的表(也就是说它有更多但只有两个与这个问题有关)。第一列是一个 GUID(一个 id),第二列是一个 nvarchar(存储一个 URL)。ID 和 URL 的组合必须是唯一的(因此可以重复相同的 guid,但每行具有不同的 URL,反之亦然,但不能有超过一行相同的 guid 和 URL)。
目前,在每次 INSERT 之前,我都会执行 SELECT 以查看是否存在具有相同 id 和 URL 的行。但是,看起来 nvarchar 上的查找速度很慢。因此,我想我会更新表以存储一个额外的列,该列在插入时用 URL 的哈希 (SHA1) 填充。现在我们只查找较小的哈希(varbinary?),我认为它会比以前快得多。
有没有办法让 SQL Server 2008 自动存储散列并针对该散列值而不是实际文本进行查找?我假设这些指标是 b 树,所以我要求的是 SQL Server 使用 nvarchar 字段中文本的哈希值创建 b 树,并且当运行选择时,它应该计算哈希并使用哈希值在树中查找。这可能吗?