我有一个包含大约100列的表,如果列的组合是唯一的,则只需要添加一个新行。问题是我需要检查大约50列,因此对于大量数据,简单的where子句可能会非常慢。
是否建议事先在C#中创建这些字段的所有值的唯一散列,并将其存储在表中的新列中并根据该值进行比较?
答案 0 :(得分:0)
您可以使用此链接(hash a SQL row?)来散列您要插入的行以及表中已存在的行并使用此校验和来验证唯一性
答案 1 :(得分:0)
这听起来是实现合并的好地方(如果你也在更新匹配的记录)。以下是来自MSDN的文章:
https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql