2013-09-28 38 views
0

我有一个查询从近125个不同的表中拉取数据,我创建了一些13个嵌套的存储过程调用其他存储过程来提取所有需要的数据。惊喜惊喜查询需要很长时间才能执行,有时我必须杀死他的连接并重新运行它。查询拉取12-15 GB的数据从超过120个表

我被建议使用临时表,在那里使用SSIS包移动所需的数据并从那里拉取数据,但我有点不情愿使用SSIS,因为我对SSIS不太满意,并且需要报告此报告一次在一段时间内,也为一个报告移动10-15GB的数据似乎很麻烦。

任何建议任何想法,请让这个任务的地狱更简单,更快,更容易错误?

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+0

谢谢约翰,你可以看到这是我在这个博客上的第一个问题。 :) –

+2

听起来像你有一个严重的建模问题。这是我的两分钱,我肯定会使用分段或临时表,并远离SSIS。 SSIS恕我直言更适用于非开发人员,如果您对T-SQL的使用感到满意,也可以继续使用。我自己亲手完成ETL过程,并发现它更灵活。如果这是导致客户端问题的生产数据库,则可能需要先将原始数据按原样移动到另一个数据库,然后从那里执行ETL。如果这是可能的,那么你可以添加专门围绕这个过程设计的索引,从而提高整体性能。好运 – jcwrequests

回答

1

创建报告数据库。在某些频率上,按小时,每天或任何频率满足报告用户的需求,可将ETL将事务数据库中的数据存入报告数据库。

您可以使用SSIS或者您可以选择为ETL执行一些存储过程。无论如何,您可能会使用SQL代理作业安排它。

最后,在设计报表数据库方面,考虑以有助于报表性能的方式转换数据。为了报告的目的,许多人“对数据进行了”平整“或取消规范化。我们将ETL交易数据放入使用“星型模式”模式的数据仓库中,同时我们也有一个Analysis Services数据库和MDX报告。最有可能的是,您不必为一份报告走得太远,但是,这进一步落在了优化的报告和BI数据结构的相同路径上。

+0

干杯交朋友感谢您的建议,但我已经在我的问题提到我知道这些选择的,我一直在寻找一种更简单或更简单的方法来实现这一点,因为我不舒服SSIS和我的经理已倾倒在我这个报告。我已经过了这个对我的DW的球队,他们都正把它视为坦白的讲它不是一个人的工作:)反正我很欣赏你的努力朋友。 –

+0

不好意思地桩上,但我认为数字可能帮助管理你的情况。如果你有一个DW团队,你做了正确的事情,这绝对是他们的工作。 – tnktnk

+0

DW团队在我的地方是一堆*********如果你知道我的意思:)。这个工作仍然在日志队列中,但没有人接受它,但它离我的后背不远。我已经把对“小非常小的打印”作业日志,我会帮谁做这项工作。但我们会看到,当我们到了那个阶段lolll –