我想ALLOW_SNAPSHOT_ISOLATION
在拥有约 4 亿条总记录的生产数据库上启用。我知道每条记录需要添加 14 个字节。
如果我设置ALLOW_SNAPSHOT_ISOLATION
它会阻塞一段时间与记录数成比例,还是会异步更新数据?
首先,我想确保启用此设置后我的数据库不会在数小时内停止服务。
我想ALLOW_SNAPSHOT_ISOLATION
在拥有约 4 亿条总记录的生产数据库上启用。我知道每条记录需要添加 14 个字节。
如果我设置ALLOW_SNAPSHOT_ISOLATION
它会阻塞一段时间与记录数成比例,还是会异步更新数据?
首先,我想确保启用此设置后我的数据库不会在数小时内停止服务。
两者都不。
额外的 14 个字节用于存储两个元素:
在启用快照隔离之后,这些只会在行被修改时添加到行中。在您打开快照时,不会产生阻塞或额外负载来将 14 字节添加到每一行。
您在启用时可能遇到的唯一阻塞操作是由于需要等待所有当前事务提交,这一点值得牢记。理想情况下,在安静的时期进行更改,或者最好是关闭所有活动的片刻停机时间。
如果停机时间不是一个选项,请避免任何可能发生长时间运行事务的时间段(例如 ETL)。如果您在几秒钟内没有得到响应,您可以查询
sys.dm_tran_active_snapshot_database_transactions
以确定发生了什么问题。