显示大数据信息的工具或数据库提示?

时间:2018-01-29 13:26:13

标签: c# sql-server .net-core bigdata business-intelligence

我在.net核心(c#)和SQL Server 2017中使用angular js version 1.x(frondend)构建的应用程序出现问题。

问题是以下我们有非常大的表,有大量的记录。这些表中只有一个简单的选择计数需要很长时间。我们直接从代码执行查询而不通过任何ORM librery,但即使不使用任何ORM,查询也需要很长时间。

我问自己¿是否有另一种更好的方式来咨询这些巨大的表格(外部工具,其他类型的数据库等),因为在很多情况下你需要显示报告并查看统计图表?

2 个答案:

答案 0 :(得分:2)

一种可能的策略是使用符合业务需求的分区功能来使用表分区。通过这种方式,您可以在多个文件中分割表格中的数据,从而减少要扫描的结果数量。

有关详细信息,请参阅this链接。

答案 1 :(得分:1)

SQL Server等OLTP数据库并非设计用于在大型数据集的情况下实时处理OLAP(聚合)查询。典型的解决方法是:

  • 使用额外的WHERE条件限制聚合行的数量,并为这些列添加索引。这通常可以通过订单,事件日志等历史数据进行 - 仅显示上个月或一年的报告。
  • 使用物化视图并将其用于不需要太多拆分的报告
  • 配置SQL Server的slave只读实例,可能添加列存储索引,并将其用于OLAP查询。
  • 将您的SQL Server数据复制到可以实时处理OLAP查询的专用(可能是分布式)分析数据库(如Amazon Redshift,Vertica,MongoDb,ElasticSearch,Yandex ClickHouse等)

如果最终用户可以配置报告,请确保您的ROLAP类引擎生成有效的SQL GROUP BY查询。