最大限度地减少登台前数据库事务日志的增长

时间:2018-11-02 21:40:00

标签: sql-server transaction-log

我有一个应用程序,可将csv文件中的数据加载到预暂存表中,然后通过调用一些SP对其执行一些操作,然后再进行暂存:

  • 插入之前数据将被截断
  • 我正在使用简单恢复模式,因为在此阶段数据恢复并不重要
  • 整个过程每天完成
  • 在转移到暂存之前,使用了两个SP:一个SP批量插入表中,另一个SP删除引号。

问题在于,csv文件通常具有约150万行。因此,这意味着它将使用truncate table截断150万行表,然后逐行引用删除操作。我显然相信这两个是导致事务日志大小的原因。 我一直在研究在后端执行报价删除的方法,而不是使用SP这样做,因此希望这将有助于最大程度地减少增长。但是,我该如何处理尚未执行的数据库,以使日志不会随着时间的推移而急剧增加?

1 个答案:

答案 0 :(得分:0)

您可能要考虑使用In-Memory OLTP。您可以创建具有SCHEMA_ONLY持久性的表。 SCHEMA_ONLY的持久性避免了事务日志和检查点,从而可以大大减少I / O操作,并且事务日志不会增长。