【问题标题】:Reporting a huge volume of data报告海量数据
【发布时间】:2016-10-07 00:25:03
【问题描述】:

我们运行一个 SAAS 产品。我们的一位客户是企业客户,而其他客户为 6 个月的账单报告生成 8-10,000 行数据。它们生成大约 300,000 行数据。每行有 30 列。因此,当他们尝试转到我们的报告模块并导出他们的 6 个月报告时,我们的服务器会因为 CPU 跃升至 80% 而无响应,并且整个过程都失败了。连接等后从 SQL 数据库中获取 300K 需要 30 分钟,然后需要 3 小时在 excel 中写入 30 列的 300K 行。我担心只有 1 个客户会导致整个网站瘫痪,因为我们有 40 份报告,如果他们开始返回 6 个月并导出数据,其他用户的体验将会很糟糕。

在 SAAS 产品中处理如此大量数据导出的最佳方法是什么?

发送

【问题讨论】:

  • 您使用的是 Azure SQL DB 吗?如果有,那是几层?如果您使用的是高级数据库,您是否尝试过使用列存储、内存中 oltp 来提高性能?您是否有适当的索引 - azure sql 数据库中有索引顾问可以推荐丢失的索引。

标签: excel azure-sql-database high-volume


【解决方案1】:

将您的生产数据库复制到“最终用户的沙盒数据库”中,从那里为您的最终用户提供报告服务,如果需要,他们可以将数据库减慢到紧急停止。

不应从生产系统中进行如此大的导出。

【讨论】:

  • 您是指最终用户网络上的本地沙箱还是托管的镜像数据库?
  • 两者都会有所帮助 - 但是当您谈论 SaaS 并且我猜您提供的服务中包含报告时,恐怕您将不得不托管镜像。
猜你喜欢
  • 1970-01-01
  • 2012-08-24
  • 2015-11-19
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多