SQL Server 是否保证准确的数据存储?如果是这样,如何?

7 sql-server

此问题特定于 SQL Server,但欢迎其他 DB 回复。

阅读下面的一些历史。我的简短问题是,当我请求将“ABCDE”写入数据库时​​,SQL Server 如何保证写入的是“ABCDE”,而不是“ABECD”?有人建议重新读取数据并进行比较以保证相同的结果,但会明显降低性能。

我工作的公司正在为我们推出一款大批量产品(每天约 35,000 件),我们将为其收集存储在 SQL Server 中的数据。

以前,小批量产品将数据存储在生产线上,本地存储在 SQL Server Express 数据库中,然后使用跨服务器事务定期复制到服务器 (SQL Server Standard)。有时,这些桌面数据库会损坏,通常需要恢复。

我们新产品的进程将直接写入服务器,绕过本地/桌面存储。

我们的管理层正在将这种“桌面腐败”体验融入到新产品中。

除了诉诸权威(如果 Microsoft 不能准确存储数据,它就不会从事数据库业务)或轶事经验作为证据(在我管理 SQL Server 数据库的五年中,从未见过服务器 [标准/企业] 数据库成为损坏),是否有任何 Microsoft 文档引用 SQL Server“保证”?

这是一个很少有人质疑的基本事实,尤其是对于标准玩家(DB2、Oracle、SQL Server)。

谢谢!

小智 3

所有主要的 SQL 数据库都提供此功能;这称为ACID 兼容。这可能是您需要在文档(和/或 Google)中查找的关键词。

至于他们是如何做到的,MS SQL Server 是闭源的,Oracle 也是闭源的,所以公司外部没有人能够真正回答这个问题,但正如你所说,如果他们没有为大型系统管理它,他们的产品将很快退出市场。