【问题标题】:Growing log data不断增长的日志数据
【发布时间】:2013-04-05 09:17:02
【问题描述】:

在我们的应用程序(预订/预订类型)中,我们通过单个 DBAudit 表处理日志数据。

问题在于,由于该表中数据的增长,基于该表生成的报告“大幅”放缓。有哪些选择(时间证明)?

这些是有效的选择吗:

  1. 通过多个表处理日志
  2. 定期自动删除旧数据
  3. 将旧数据迁移到其他存档数据库

具有大量活动日志的其他应用程序如何维护这一点?

【问题讨论】:

    标签: c# database optimization logging database-performance


    【解决方案1】:

    您可以尝试每隔一段时间预先计算数据中的重要指标,然后根据这些指标构建报告。

    这将允许您将旧日志数据归档到数据仓库中,而不会影响您的报告。

    【讨论】:

    • 令人印象深刻的概念!谢谢亲:)
    • 我猜预计算的指标应该保存在其他表格中?
    • 是的,在没有原始生产数据外键的单独表中。在后台运行的 Windows 服务可以每晚或每周计算,无论是最适合您的方案。我为一个客户做了这个,效果很好。权衡是报告不是实时的(大多数情况下这是可以接受的)。
    【解决方案2】:

    是的,所有这些都是不错的选择,您可能应该尝试实现所有这些:

    1. 通过多个表处理日志 - 可能考虑仅在主表中保留最新数据,然后稍后将它们移动到某些历史表中。这取决于生成报告真正需要多少数据。
    2. 定期自动删除旧数据 - 我会考虑在删除数据之前先计算指标。尝试创建尽可能多的不同指标以减少占用空间,然后在处理数据时只保留结果并删除实际数据。
    3. 将旧数据迁移到其他存档数据库 - 我只会在您真的无法删除任何数据的情况下这样做。

    除此之外,您始终可以尝试为最常用列的报表添加索引和/或尝试尽可能优化查询。如果这些表中已有索引,请确保您定期重新构建这些索引。

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 1970-01-01
      • 2018-11-02
      • 2010-11-20
      • 1970-01-01
      • 2012-04-21
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多