访问对SQL Server数据库的临时更改
我的一所老学院花了很多时间在MicrosoftSQLServer中实现一个数据库,在那里他用VBA宏更新它。数据库更新需要6分钟,每次观察都要进行多次更新。这会使观测在更新期间处于无效状态 我的问题是,有没有一个快速修复方法可以让其他人在更新时查询数据库?如果他想从中间状态读取数据,如果他只做了只写的更改,这两者都是可能的吗访问对SQL Server数据库的临时更改,sql,sql-server,Sql,Sql Server,我的一所老学院花了很多时间在MicrosoftSQLServer中实现一个数据库,在那里他用VBA宏更新它。数据库更新需要6分钟,每次观察都要进行多次更新。这会使观测在更新期间处于无效状态 我的问题是,有没有一个快速修复方法可以让其他人在更新时查询数据库?如果他想从中间状态读取数据,如果他只做了只写的更改,这两者都是可能的吗 我知道它不好看,我们将在后面交换数据库。因此,不要回答:“远离VBA”。对于发布的有限信息量,我能想到的最好办法是在更新数据库之前复制数据库,并允许仍需要只读访问权限的程序
我知道它不好看,我们将在后面交换数据库。因此,不要回答:“远离VBA”。对于发布的有限信息量,我能想到的最好办法是在更新数据库之前复制数据库,并允许仍需要只读访问权限的程序在更新主数据库时查询副本。我有一个类似的问题,我通过执行以下操作来解决它:
您需要确定性能低下的原因-vba速度慢吗?更新查询是否优化不足,运行时间过长?在当前状态下,我们几乎无法回答您的问题-您已经说过,在更新过程中查询数据库是不合适的,因此建议无锁场景不会有帮助(如果甚至是导致缓慢的行锁定),这些“多个更新”应该在单个事务中完成,那么数据库在更新过程中就不会处于无效状态了@horse所说的结合快照隔离应该满足您的需要