use*_*632 3 sql-server log-shipping sql-server-2014
在需要清除或删除的日志传送数据库中有两个半大的相关表(284,6876,609 行 - 156,785,176 KB 和 4,2628,162 行 - 2,212,464 KB)。如何处理这两个表,同时最大限度地减少对日志传送的影响?
J.D*_*.D. 11
如果您DROP
使用表,它将导致生成最少的日志,因为它不会立即强制在已用空间上进行垃圾回收,它只是基本上只是删除了引用。您同样可以用 完成相同的结果TRUNCATE
(尽管我认为在大表上可能会有比 多的开销DROP
,我必须对此进行研究并相应地更新我的答案)。
这是一个非常好的一篇文章,详细原因TRUNCATE
和DROP
操作是无缝快速生成最小的日志,这是由于SQL Server的功能,称为递延下降。
无论哪种方式,请避免DELETE
否则会生成大量需要在目标数据库上发送和重新应用的日志。
这个StackOverflow 问题有多个答案,其中包含有关从大表中有效删除数据的良好信息(有些可能与您的问题没有具体关系,但有利于将来参考或其他有类似问题的用户)。
归档时间: |
|
查看次数: |
286 次 |
最近记录: |