代码之家  ›  专栏  ›  技术社区  ›  Nimchip

最小化预先准备的数据库事务日志增长

  •  0
  • Nimchip  · 技术社区  · 7 年前

    我有一个应用程序,它将CSV文件中的数据加载到预暂存表中,然后在移动到暂存前通过调用一些SP对其执行一些操作:

    • 数据在插入之前被截断
    • 我使用的是一种简单的恢复模式,因为数据恢复在这个阶段并不重要
    • 整个过程每天都在进行
    • 在转移到staging之前,将使用两个sps:一个用于批量插入表中,另一个用于删除引号。

    问题是csv文件通常有大约150万行。这意味着它使用 truncate table ,然后逐行引用删除。显然,我确信这两个因素是导致事务日志大小的原因。 我一直在研究如何在我们的后端删除报价,而不是使用一个SP这样做,所以希望这将有助于减少增长。但是,我可以在我们的数据库上做些什么,我还没有做过,这样日志就不会随着时间急剧增加?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Andrey Nikolov user3098458    7 年前

    你可以考虑使用 In-Memory OLTP 为了这个。您可以使用 SCHEMA_ONLY 耐用性仅模式持久性避免了事务日志和检查点,这可以显著减少I/O操作,并且事务日志不会增长。