首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server时态表-存储成本

Server时态表-存储成本
EN

Stack Overflow用户
提问于 2018-02-09 07:31:52
回答 1查看 423关注 0票数 0

在网络中是否有任何信息,我可以验证时态表特性的存储成本有多高?

服务器是否会创建已修改的行/元组的完整硬拷贝?或者服务器是否会使用对主表的原始值没有修改的引用/链接?

例如。我有10列=存储100 KB的行。我更改了一行的一个值,每次都是这样。在更改之后,历史表中有很多行。主表和历史表的填充存储费用是300 Is吗?

谢谢你的每一个提示!

拉加兹

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-09 11:46:08

服务器是否会创建已修改的行/元组的完整硬拷贝?或者服务器是否会使用对主表的原始值没有修改的引用/链接?

下面是“Pro SQL Server Internals by Dmitri Korotkevitch”一书的引文,它回答了你的问题:

简而言之,每个时态表都由两个表组成--包含当前数据的当前表和存储旧版本行的历史表。每次修改或删除当前表中的数据时,Server都会将这些行的原始版本添加到历史表中。 当前表应该始终定义一个primary key。此外,当前表和历史表都应该有两个datetime2列,称为句点列,它们指示行的生存期。SQL Server根据创建新版本行时的事务启动时间自动填充这些列。当一行在一个事务中被多次修改时,Server不会在历史表中保留未提交的中间行版本。 Server将历史记录表放置在默认文件组中,在控制行生存期的两个datetime2列上创建非唯一的聚集索引。它不会在表上创建任何其他索引。 在Enterprise和Developer中,历史表默认使用页面compression

所以这不是

指向母版表原始值的引用/链接

以前的行版本只是复制到历史表中的每一个移动化。

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

https://stackoverflow.com/questions/48700772

复制
相关文章

相似问题

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