Questions tagged «archive»

3
归档当前年份以外的所有数据并同时对表进行分区的最佳方法是什么
任务 从一组大型表中存档,除了滚动13个月以外的所有时间。存档的数据必须存储在另一个数据库中。 数据库处于简单恢复模式 这些表是5000万行到数十亿行,在某些情况下,每行占用数百GB。 这些表当前未分区 每个表在不断增加的日期列上都有一个聚集索引 每个表还具有一个非聚集索引 对表的所有数据更改都是插入 目标是最大程度地减少主数据库的停机时间。 服务器是2008 R2 Enterprise “存档”表将包含约11亿行,“活动”表将包含约4亿行。显然,存档表会随着时间的推移而增加,但是我希望实时表也会迅速增加。至少在接下来的几年中说50%。 我曾考虑过Azure拉伸数据库,但不幸的是,我们现在使用的是2008 R2,并且可能会在其中停留一段时间。 当前计划 创建一个新的数据库 在新数据库中创建按月分区的新表(使用修改的日期)。 将最近的12-13个月的数据移到分区表中。 对两个数据库进行重命名交换 从现在的“归档”数据库中删除移动的数据。 对“归档”数据库中的每个表进行分区。 将来使用分区交换来存档数据。 我的确意识到,我将不得不交换要存档的数据,将该表复制到存档数据库,然后将其交换到存档表中。这是可以接受的。 问题: 我正在尝试将数据移到初始分区表中(实际上,我仍在对其进行概念验证)。我正在尝试使用TF 610(根据《数据加载性能指南》)和一条INSERT...SELECT语句来移动数据,最初认为该数据将被最少地记录。不幸的是,每次我尝试将其完全记录下来。 在这一点上,我认为我最好的选择可能是使用SSIS包移动数据。我试图避免这种情况,因为我正在使用200个表,而我可以通过脚本轻松地生成和运行的任何事情。 我的总体计划中是否缺少任何内容?SSIS是否是我最好的选择,它可以快速移动数据并以最少的日志使用量(空间问题)? 没有数据的演示代码 -- Existing structure USE [Audit] GO CREATE TABLE [dbo].[AuditTable]( [Col1] [bigint] NULL, [Col2] [int] NULL, [Col3] [int] NULL, [Col4] [int] …

1
清除数据的最快方法是什么?
场景: 我们在订阅服务器上有两个表Tbl1&Tbl2。在Tbl1正在从出版商复制的Server A,它有两个触发器-插入和更新。触发器正在将数据插入并更新到中Tbl2。 现在,我们必须清除(大约9亿条记录)Tbl2中的总数超过1000+百万条记录。以下是一个月到一分钟的数据分布。 一个月-14986826行 一天-483446行 一小时-20143行 一分钟-335行 我在寻找什么 清除该数据的最快方法,不会产生任何生产问题,数据一致性,也可能不会造成停机。因此,我正在考虑按照以下步骤操作,但遇到了:( 脚步: BCP从现有表Tbl2中输出所需的数据(大约1亿条记录,大约需要30分钟)。 假设我从1Fab2018 10:00 PM开始进行活动,并在1Fab2018 10:30 PM结束了活动。到活动完成时,表Tbl2将获得变为增量的新记录。 在名称为Tbl3的数据库中创建一个新表 BCP将导出的数据导入到新创建的表Tbl3中(大约1亿条记录,可能需要大约30分钟) 停止复制作业 完成BCP输入后,请使用tsql脚本插入新的增量数据。 挑战是-如何处理增量“更新”语句? 开始复制 附加问题: 处理场景的最佳方法是什么?

1
数据库存档解决方案
继续我提出的一个问题,将高容量和高访问量的表移至单独的数据库是否是一个好主意?,我正在寻找可用于PostgreSQL中数据库归档的不同技术/解决方案。 我能想到的解决方案很少: 表分区 单独的表空间和/或架构 将存档的记录/表移动到其他硬盘 任何其他建议/指针/解决方案都将受到欢迎和赞赏。 注意:我们在CentOS5.2上运行PostgreSQL v9.1.3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.