在给定行数删除时,事务日志会增加多少

Joh*_*ter 6 sql sql-server

我在sql server中有来自以下数据的表 exec sp_spaceused

rows        reserved           data               index_size         unused
182515      16721960 KB        16563768 KB        14920 KB           143272 KB
Run Code Online (Sandbox Code Playgroud)

我想删除38693行.这是在粗略估计中计算此删除中事务日志可以增加多少的正确方法吗?

(38693/182515)*16721960 KB 最多? 3.544 GB

任何人都可以帮助我.

Pau*_*ams 0

您的估计值(16 GB 数据/182,515 行)X 38,693 行看起来是一个合理的估计值。

另一种估计是采用平均行大小并将其乘以要删除的行数。

例如,此查询将获取聚集表的平均记录大小。对于大表来说可能需要一段时间才能返回:

select avg_record_size_in_bytes * 38693 / 1024.0 as [MB]
from sys.dm_db_index_physical_stats(db_id(), object_id('MyTable'), 1, 0, 'Sampled')
Run Code Online (Sandbox Code Playgroud)

为了更加确定,您可以在测试服务器上恢复数据库的备份并测量删除的影响。