【发布时间】:2014-12-30 14:42:15
【问题描述】:
我正在考虑让数据库更新更容易一些。
对于这种情况: 需要通过 PK 比较 DB A 到 DB B 的所有列,以了解该行是否需要更新。
简单的方法是用分隔符连接所有列,然后进行比较。 例如:
string row_A=column1+column2+.....column20;
string row_B=column1+column2+.....column20;
if(row_A!=row_B)
{...}
但我想知道有没有更好的方法,比如将这些列计算为唯一值, 像哈希或其他东西,然后我可以将这些值保存到表中。
uniqueValue_A=makeUniqueValue(column1+column2+.....column20);
uniqueValue_B=makeUniqueValue(column1+column2+.....column20);
if(uniqueValue_A!=uniqueValue_B)
{...}
然后我只需要比较这些唯一的数字或字符串。
【问题讨论】:
-
你可以使用校验和来做这样的事情。会减少打字次数。
-
散列不可靠。考虑连接:
J+ames与Jam+es相同。散列可以有相同的冲突。如果您遇到性能问题,请考虑改进索引以支持比较。如果您没有遇到性能问题,请在需要时进行优化。 -
明白,数据太大,不能让所有列都被索引。只是问更好的想法
标签: c# sql sql-server hash hashmap