【问题标题】:Querying large scale table in SQL Server在 SQL Server 中查询大型表
【发布时间】:2020-02-10 03:25:56
【问题描述】:

我有一个包含 2 亿条记录的表。此表每分钟更新一次,并向其中添加新记录。我想以 group by 和 sum 函数的格式查询 KPI 分析。在没有性能缺陷的情况下查询表的最佳方法是什么?目前,我将结果保存在单独的表中,并使用 SQL Server 触发器更新了该表,但这不是一个好方法。有没有其他方法可以推荐?

【问题讨论】:

  • 触发持续求和方法有什么问题?
  • 在触发器中,您应该管理删除、更新和插入,这会使您的触发器复杂且容易出错。我考虑类似视图,但性能更好且无错误,例如 SSAS,但比它更简单。
  • 据我了解,您有一个非常大的表,并且您还需要经常对该表进行聚合查询。避免完整查询损失的一种方法是使用带有触发器的单独表来跟踪运行总和。
  • 考虑使用索引视图来实现GROUP BY 聚合。如果您需要帮助,请向您发布 DDL 并查询。
  • 是的,我也考虑索引视图,但是源表是 OLTP 并且一分钟内有很多 DML

标签: sql-server tsql bigdata


【解决方案1】:

如果您使用 SQL Server 2016 或更高版本的 SQL Server,您可以使用 Real-Time Operational Analytics 方法来克服这种类型 的问题。实时操作有助于运行分析和 OLTP 工作负载 在同一个数据库上。这样可以避免ETL过程。 实时运营分析可以解决您的问题。

【讨论】:

  • Tnx 得到了很好的答复,但考虑到所有副作用,我认为对我们来说最好的方法是创建和开发 ETL 应用程序
【解决方案2】:

如果事件存储在第二个表中,则使用另一个表是一个很好的解决方案。您可以按月、周、日等保存事件,并据此计算系统分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 2013-11-03
    • 2017-07-22
    • 2013-07-06
    • 2012-04-19
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多