首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OLTP上的表分区

OLTP上的表分区
EN

Database Administration用户
提问于 2020-07-15 16:15:53
回答 1查看 257关注 0票数 0

在SQLServer2017 Std上,我有一个SSIS包,每天在24×7任务关键操作数据库上运行一次,用于归档最大的事务表。数据被移动到单独的归档数据库上的表中,并且进程运行平稳,在活动数据库上有最小的锁定争用(删除将在很长一段时间内传播)。拥有一个单独的归档数据库具有许多优点:单独备份数据库;仅使用当前数据刷新测试环境;提高对当前数据的查询性能等。唯一的缺点是代码更改(当用户在UI上请求时,将逻辑添加到存档数据上),以及当需要获取存档数据时,跨数据库查询速度较慢。我们正在升级到企业版,并考虑为数据归档进行表分区,但是我读得越多,我就越担心实现和维护开销。到目前为止,我能看到的唯一真正的优势是应用程序的透明性,而不需要更改代码。你们中有人使用表分区进行数据归档吗?在OLTP系统上真的值得吗?提前谢谢。

EN

回答 1

Database Administration用户

发布于 2020-07-15 16:39:03

对于分区,您有几个额外的选项。

  1. 将旧分区切换到同一数据库中的单独表。查询仍然不透明,但主要的优点是分区开关是元数据操作,只需要一个简短的模式锁,而不需要生成大量的日志写入。
  2. 分区,并将旧行保留在分区表中,可能会设置“归档”状态列。旧分区可以以不同的方式进行压缩,如果有一些列将归档的行与未存档的行区分开来,并且OLTP应用程序普遍使用该列作为筛选器,则可以创建筛选索引,对归档行和非存档行进行不同的索引。

在SQL2017中,您可以使用简单的选项将表设置为时态表。您将继续删除旧行,但Server将将已删除的行复制到历史表,管理归档行的保留,并在主表和历史表中提供视图。

顺便说一下,Server 2016 SP1+的每个版本都有表和索引分区。

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

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

复制
相关文章

相似问题

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