首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALLOW_SNAPSHOT_ISOLATION持续时间

ALLOW_SNAPSHOT_ISOLATION持续时间
EN

Database Administration用户
提问于 2013-07-03 22:44:42
回答 1查看 389关注 0票数 2

我想在一个拥有4亿总记录的生产数据库上启用ALLOW_SNAPSHOT_ISOLATION。据我所知,每个记录都需要添加14个字节。

如果我设置了ALLOW_SNAPSHOT_ISOLATION,它会阻塞一段与记录计数成比例的时间,还是会异步更新数据?

主要是,当启用此设置时,我希望确保我的数据库在几个小时内不会停止服务。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-07-03 23:49:01

...will it阻塞一段与记录计数成比例的时间,或者会异步更新数据。

都不是。

额外的14个字节用于存储两个元素:

  • 修改行的事务序列号。
  • 指向版本存储区(如果存在的话)中的行的上一个版本的指针。

在启用快照隔离之后,只有在行被修改时才会添加这些内容。在切换快照时,不会产生阻塞或额外的负载来将14个字节添加到每一行。

启用时可能遇到的唯一阻塞操作是需要等待所有当前事务提交,这是值得记住的。理想的情况是,在安静的时间里做出改变,或者最好是在休息的时候,你把所有的活动都拒之门外。

如果停机时间不是选项,请避免可能发生长时间运行的事务(例如ETL)。如果几秒钟内没有得到响应,就可以查询sys.dm_tran_active_snapshot_database_transactions以确定是什么阻碍了您的工作。

票数 7
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/45686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档