我有一个 SQL Server 数据库,它存储具有信用的帐户(大约 200.000 条记录),以及一个存储交易的单独表(大约 20.000.000)。
每当将交易添加到数据库时,都会更新信用。
我需要做的是更新客户端程序(使用 Web 服务)以在本地存储积分,并且每当将新事务添加到服务器时,它们也会发送到客户端(使用 delta 的时间戳)。我的主要问题是为客户创建第一个数据集。我需要提供所有帐户的列表和交易表上的最后一个时间戳。
这意味着我必须在快照中创建此列表和最后一个时间戳,因为创建此列表期间的任何更新都意味着信用总数和最后一个事务时间戳不匹配。
我已经研究了ALLOW_SNAPSHOT_ISOLATION
设置并在事务上使用快照隔离SqlCommand
,但从我读到的内容来看,这将导致显着的性能损失。这是真的吗,这个问题可以用其他方法解决吗?