如何避免炸毁交易日志?

时间:2011-11-05 22:30:53

标签: sql-server-2008 tsql

我有一个表来存储复杂查询中的数据。此表被截断,每小时新填充一次。您可能认为这是出于性能原因,因此应用程序访问此表而不是查询。

是截断并插入廉价解决此任务的唯一方法,还是有关于事务日志的其他可能性?

1 个答案:

答案 0 :(得分:1)

如果我假设正确,您使用此表作为临时表来存储一些记录,并希望每隔一小时从该表中删除所有记录,对吗?

Truncate始终记录最少。所以是的,截断然后插入将起作用。另一种选择是创建一个具有相同结构的新表。删除旧表,然后将新表重命名为旧表名。

如果您想避免上述情况,您可以探索“简单”恢复模型(这会对时间点恢复产生影响 - 因此,如果您在同一个数据库中有其他表,请务必小心)。或者您可以创建一个只有这一个表的新数据库,将此数据库的恢复设置为“简单”。简单的恢复模型将帮助您保持t-log的小。

最后,如果你必须完全恢复并且也不能使用上面的“截断”或“删除”选项,你至少应该定期备份你的t-log(取决于它的增长和增长的大小)你有多少空间)。