Sql server 关于在SQL Server中的超大数据库上运行报表查询的建议

Sql server 关于在SQL Server中的超大数据库上运行报表查询的建议,sql-server,reporting,Sql Server,Reporting,我们在SQL Server 2012中运行数据库,其中包含多个大型数据集(有些数据集的记录范围超过50万条)。以前的SQL开发人员设计并优化了查询,但运行这些查询仍需要2个多小时 他通过创建一个静态表来部分解决这个问题,该表在每次运行查询时都会更新,因此如果数据没有更改,查询将从这个汇总表运行。静态表通过对相关表执行校验和来更新,如果校验和显示数据已更改,则更新静态表 我正在努力加快整个过程。我们设计了一个内部GUI来运行查询,以便经理能够自己运行报告,但我不希望他们浪费2小时等待报告。我将回顾

我们在SQL Server 2012中运行数据库,其中包含多个大型数据集(有些数据集的记录范围超过50万条)。以前的SQL开发人员设计并优化了查询,但运行这些查询仍需要2个多小时

他通过创建一个静态表来部分解决这个问题,该表在每次运行查询时都会更新,因此如果数据没有更改,查询将从这个汇总表运行。静态表通过对相关表执行校验和来更新,如果校验和显示数据已更改,则更新静态表

我正在努力加快整个过程。我们设计了一个内部GUI来运行查询,以便经理能够自己运行报告,但我不希望他们浪费2小时等待报告。我将回顾他使用的索引,看看我是否可以进一步优化它们,并调整他的代码,但我怀疑我可能只能获得最小的性能改进

我喜欢用于报告的静态表的想法,但希望更频繁地更新它(最好是每晚更新),但由于数据也可能根据任务而变化,因此我希望避免任何性能问题。例如,团队可能会在一夜之间加载记录


任何建议都很好。谢谢。

我认为一个很好的衡量标准是,与原始表相比,汇总表所需的I/O要少多少,看看它是否有意义。您也可以调整原始查询,但是如果没有任何详细信息,就不可能推荐任何内容。您需要澄清您的问题。报告查询是在汇总表上运行缓慢,还是在明细表中运行缓慢?或者您的问题是如何更快地填充汇总表?换句话说,我不知道您需要什么帮助。查询运行速度变慢,以填充生成报告的汇总表。为了澄清这个问题,我想问的是,当前的工作流是一个好方法,我只是在等待在那个大数据集上生成报告?或者有没有其他方法可以用来报告大型数据集(假设一个简单的数据库结构最多包含3个表)以生成报告?NoSQL结构在这里工作吗?还是Hadoop?