我有一些定期交付新数据的报告活动,我目前的策略是删除旧数据然后插入新数据,我使用范围查询在一段时间内批量移动报告数据。
我的插入性能应该很好,因为我在这里所做的只是追加一个不断增加的数字,我使用的是datetime2(7)
数据类型并sysdatetime()
作为默认值。
但是,我担心碎片问题。
旧数据将首先被写入,但最终数据将被删除,新数据(替换此数据)将被附加到末尾。
我的数据在更新时应该有效地滚动到未来。
我完全排除所有旧数据最终被删除。
我仍然需要担心碎片化还是会这样做?我怀疑这会有很好的性能,但我仍然有点担心 SQL Server 将无法回收已删除的空间。