当前位置: 代码迷 >> Sql Server >> MSSQL 有一张万万条记录数据表
  详细解决方案

MSSQL 有一张万万条记录数据表

热度:71   发布时间:2016-04-24 18:35:54.0
MSSQL 有一张千万条记录数据表
1.MSSQL  单表数据量为3千万+   已做复制

现在想删除2014年之前的记录大约2千万多条记录

2.删除完数据后做收缩,会不会影响到正常运营,大约能收缩50G


生产库不能停机
求合理解决办法
------解决方案--------------------
我最近在做类似的,删除数据不能一次性删除,死定的,我这边有时间列,我是每个月一次来删除,当然,删除前要做完整备份。复制方面不用做什么,收缩也是,不要一次性收缩,一次100M左右,虽然次数多,但是影响面小,另外就是服务器闲时操作
------解决方案--------------------
你的数据量也挺大的了,建议:

1.不要一次删除,而是最好要分批删除,比如一次删除1个月的

2.最好在晚上的维护时间内删除,如果在白天删除,可能导致严重的阻塞问题。

3.像这种删除,速度肯定不会快,所以建议把这个表,按照日期字段,改为分区表,这样可以每个月一个分区,到时候要删除,只需要一个一个分区删除就可以了,删除的速度是秒级别的,速度非常快,而且也方便进行历史数据的迁移
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

我最近在做类似的,删除数据不能一次性删除,死定的,我这边有时间列,我是每个月一次来删除,当然,删除前要做完整备份。复制方面不用做什么,收缩也是,不要一次性收缩,一次100M左右,虽然次数多,但是影响面小,另外就是服务器闲时操作


我删除的时候想把数据库切换到简单模式,不让记录LOG,不知道会不会有影响到复制(我服务器磁盘有点紧张)
一次100M左右,大概收缩要多久啊?
不能这样做,做了复制不能换模式,100M,如果没阻塞,1分钟左右吧



那我删除会记录大批log啊,不知道磁盘能不能顶住
这样太容易了,删1天的数据,如果很快,多删几天,或者一个月,然后马上做一个日志备份,磁盘顶得住的,1个月的数据估计产生的日志都不会超过1G,
  相关解决方案