12得票1回答
在单个事务中,如果同一条记录有多次更新,会存储多少个版本?

根据金伯利·L·特里普(Kimberly L. Tripp)和尼尔·格雷夫斯(Neal Graves)在MSDN文章中的说法,SQL Server 2005基于行版本控制的事务隔离机制中,一个特定记录的所有早期版本都以链表的形式链接在一起。对于长时间运行的基于行版本控制的事务来说,在每次访问时...

9得票1回答
关于tempdb版本存储的问题 在SQL Server中,tempdb是一个非常重要的数据库,用于存储临时对象和工作表。其中一个关键的功能是版本存储,它用于支持并发事务和快照隔离级别。 版本存储是通过使用行版本控制(Row Versioning)来实现的。当一个事务修改了某个数据行时,SQL Server会将原始数据行的副本存储在tempdb的版本存储中。这样,在其他事务需要读取该数据行时,它们可以访问到该数据行的旧版本,而不会受到正在进行的事务的影响。 然而,版本存储也可能引发一些问题。首先,版本存储占用了tempdb的空间,因此如果有大量的并发事务或长时间运行的事务,可能会导致tempdb空间不足。其次,版本存储的过程也会增加系统的开销,可能会影响性能。 为了解决这些问题,我们可以采取一些措施。首先,可以监视tempdb的空间使用情况,并根据需要调整其大小。其次,可以优化查询和事务设计,以减少对版本存储的需求。最后,可以考虑将tempdb放置在独立的磁盘上,以提高性能。 总之,了解和管理tempdb版本存储是SQL Server管理员的重要任务之一。通过合理配置和优化,可以确保系统的稳定性和性能。

我们今天遇到了一个错误: 错误:3967,严重程度:17 从我所了解的情况来看,它基本上是“完整版本存储”。这引发了一些问题,我很难回答,因为在我们的店里,我们以前从未遇到过这个错误: 如果有预设的最大大小(基于总的tempdb大小或其他因素),它是否是动态的? 如果不是动态的,是否有...

9得票1回答
统计IO输出是否包含版本存储读取?

SQL Server有一个选项SET STATISTICS IO ON,它显示了查询的逻辑和物理页面读取次数。这些统计信息是否包括对SNAPSHOT和RCSI查询的版本存储的读取?

8得票2回答
TempDB版本存储清理

从我所了解的情况来看,版本存储区只会清理比最旧的活动事务更早的版本。问题是:最旧的事务是否与特定数据库相关,或者无论数据库如何,如果存在一个较旧的事务仍然处于活动状态,SQL Server是否会保留所有版本? 背景故事 - SQL Server 2005 SP4 Enterprise托管约4...

7得票1回答
RCSI和SNAPSHOT相比,使用的空间更少还是一样多?为什么呢?

尝试更好地理解基于行版本的事务隔离 - RCSI(读提交快照隔离和快照)- 在SQL Server中... MSDN在线文章“选择基于行版本的隔离级别”指出: - “对于大多数应用程序,推荐使用使用行版本的读提交隔离,而不是快照隔离,原因如下: - 它消耗的临时数据库空间比快照隔离少...

6得票2回答
寻找填满版本存储的交易记录

我们已经为我们的一些SQL Server 2005数据库启用了"READ_COMMITTED_SNAPSHOT"。 现在,我们不时地发现我们的TempDB正在填满硬盘,我们怀疑版本存储是罪魁祸首。 我们通过sys.dm_db_file_space_usage监视TempDB的使用情况,一旦...

5得票2回答
理解SQL Server版本存储

我正在尝试理解SQL Server版本存储和相关的隔离级别。据我了解,当数据库启用读提交快照选项时,可能会发生以下情况: 数据库中有一个价格为$1000的商品(id = 1) 会话1开始一个更新语句:update products set price = price * 1.5。由于这涉及...

4得票1回答
为什么行版本隔离使用记录的版本链表?

试图更好地了解基于行版本的SQL Server事务隔离... 根据Kimberly L. Tripp和Neal Graves的 "SQL Server 2005行版本事务隔离": "……当表或索引中的记录被修改时,新记录会被标记上执行修改的事务的“sequence_number”" 这...

4得票1回答
不必要的行版本何时从版本存储中删除?

抱歉我的英文不好 :) 我需要帮助理解版本存储的清理。我有以下情况。 1. 12:00 在快照隔离级别下开始一个选择语句,并且没有提交。 2. 12:01 在读取提交隔离级别下开始一个更新语句(更新一行),并且提交。 3. 12:02 在快照隔离级别下开始一个选择语句,并且没有提交。 4....

4得票1回答
sys.dm_tran_version_store_space_usage报告总是显示零空间使用

当我在Azure SQL Database上学习RCSI时,我发现了一些奇怪的事情。 DMV sys.dm_tran_version_store_space_usage总是报告版本存储使用的空间为0,即使我刚刚运行了CRUD工作负载。 为了演示这种行为,我创建了一个小测试。 -- Ser...