【问题标题】:how to handle consolidate reporting of multiple table with same structure?如何处理具有相同结构的多个表的合并报告?
【发布时间】:2014-05-08 12:53:27
【问题描述】:

我们正在创建具有相同结构的客户端明智的多个表,以减少操作事务的负载

但现在我们需要合并所有客户的报告。处理这种情况的最佳方法是什么?

每个表有 200k - 300k 行,并且有超过 100 个客户端可用(100 个表)

我可以创建转储表吗?或任何其他方法

【问题讨论】:

  • ms-sql-server 还是 mysql?
  • “2 到 30 万行”- 多少钱?
  • 0.2或30万,数据库-ms-sql服务器
  • 您正在为每个客户创建单独的表?这不是一个好主意。

标签: sql sql-server database performance


【解决方案1】:

尝试从 OLTP 数据库中卸载报告,尤其是在这种情况下。

这意味着在另一个数据库中创建一个单表数据仓库,根据需要对其进行非规范化和索引,并以适当的时间间隔加载它。

这样,您将获得报告速度,并且不会减慢插入速度。只需与客户就数据的延迟达成一致。

【讨论】:

    【解决方案2】:

    使用视图满足您的报告需求:

    create view omni
        as
    select 1 as client_id
         , *
      from tab_1
     union all
    select 2 as client_id
         , *
      from tab_2
     union all
       [...]
    

    【讨论】:

    • 没关系。它非常慢
    • 我们有动态表命名
    • 动态表命名是什么意思?名称会随着时间而改变吗?也许您想更具体地了解您的需求,并提供您所拥有的有关您的问题的所有信息。
    • 对不起不是动态表名我想在报告时选择随机客户表我只想报告一些客户
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2014-08-06
    • 2019-12-15
    相关资源
    最近更新 更多