如何使用SQL Server确保数据完整性?

时间:2016-12-03 08:34:24

标签: sql-server database database-design database-integrity

我在SQL Server中有一个包含数十亿行的表。我想确保数据是只读的(不可变的),并且在插入数据库后总是不会更改。

我目前的想法是使用 SHA3哈希算法来制作哈希链。

HASH(current_row) = HASH(HASH(previous_row) + current_row) # as the hash content of the current row

上述解决方案存在以下缺点:

  1. 如果有数十亿行可能需要很长时间,因为每个记录哈希与前一记录的哈希相关。

  2. 它不允许并行计算。

  3. 考虑到性能,确保数据完整性的最实用方法是什么?

1 个答案:

答案 0 :(得分:2)

数据完整性意味着别的东西。如果您需要确保某些用户不会更新和删除任何内容,请不要向他们提供更新和删除授权。

阅读是否具有高效性与助学金无关。您需要知道您的获取方案并设置正确的索引。如果这还不够,您可能需要其他更高级的技术(分片,只能从复制的从属中读取等)