Vac*_*ano 8 sql-server-2008 sql-server sql-server-2008-r2 snapshot isolation-level
我的系统中有很多死锁。
我想使用快照隔离来修复它们,但我的 DBA 对此有所保留。
他的担忧之一是快照隔离会减慢写入速度。这是因为它必须先写入缓存,然后写入 TempDb(行版本),然后才能返回给调用者。
“正常”写入可以只写入缓存然后完成。
这是行版本控制的工作方式吗?或者比这更复杂?它是否以某种方式并行执行这些操作?
还是快照隔离的写入速度较慢?
Rem*_*anu 14
是因为它必须先写入缓存,然后写入 TempDb(行版本),然后才能返回给调用者。
不,这是不正确的。它以某种方式暗示存在版本控制的写入具有更高的延迟,因为每次写入都必须接触磁盘(对于 tempdb),这是不正确的。写入 tempdb 也是写入“缓存”。当必须强化日志时,唯一的“等待”发生在 COMMIT 时间。确实,通过版本控制 DB 日志和 tempdb 日志都必须被强化,但这并不一定意味着更高的延迟(IO 应该在不同的存储路径上并行,tempdb 存储在与您经常使用的 LDF 不同的驱动器上,对?)。要获得完整的解释,请阅读工作原理:Bob Dorr 的 SQL Server I/O 演示文稿我真的希望您的 DBA 比您在此处传达的内容更能理解这一点。
正如我在您的另一篇文章中提到的:快照没有插入成本,更新和删除的成本可以轻松减轻。行版本控制资源使用解释了权衡。此时,您可能应该使用真实的工作负载进行测试,这是正确评估您将经历的影响的唯一方法。
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |