我有一个查询,它从大约125个不同的表中提取数据,我创建了13个嵌套的存储过程,调用其他存储过程来提取所有需要的数据。惊喜惊喜查询需要很长时间才能执行,有时我必须杀死他的连接并重新运行它。
我被建议使用临时表,使用SSIS包在那里移动所需数据并从那里提取数据,但我有点不愿意使用SSIS,因为我对SSIS不太满意并且此报告被请求一次一段时间以及为一份报告移动10-15 GB的数据似乎很麻烦。
任何建议任何想法请使这个任务的地狱更简单,更快,更不容易出错???
答案 0 :(得分:1)
创建报告数据库。在某些频率上,每小时,每天或任何频率满足报告用户的需求,ETL将数据从事务数据库转移到报告数据库中。
您可以使用SSIS,也可以选择为ETL执行一些存储过程。无论如何,您可能会使用SQL代理作业来安排它。
最后,在设计报表数据库方面,请考虑以有助于报表性能的方式转换数据。许多人为报告目的“扁平化”或取消标准化数据。我们将事务数据ETL到使用“星型模式”模式的数据仓库中,我们还有一个Analysis Services数据库和MDX报告。对于一份报告,您很可能不需要那么远,但是,这是针对报告和BI的优化数据结构的相同路径。