1

这是我的第一个问题,所以请多多包涵,如果可以的话,我也会尝试在某个地方回答一个问题,尽管我不确定我的技能是否能胜任。

我在 SQL 2008 中有一个存储过程,目前执行的结果大约有 600 奇数行,其中有联合和多次使用的用户定义函数。没有什么离谱的。通过 Management Studio 中的查询窗口在 7 秒内完成查询。

在 BIDS 中,编写 SSIS 我使用与 OLEDB 源相同的 SP 作为数据流的一部分。结果集输出到 Excel。

在完成之前,相同的查询会在预执行阶段中挂起 40 多分钟。

我尝试重新创建相同的数据流,以防出现一些奇怪的问题,我尝试替换查询中的 UDF 以查看是否是问题所在,但无济于事。

有没有人知道问题可能是什么,或者我可能会做些什么来进一步调查。

亲切的问候,

马特 H

4

3 回答 3

2

您是否尝试过在 sp 作为源而不是 sp 中运行查询?是不是一样慢?

于 2010-01-25T18:20:04.823 回答
1

为所有有帮助的人干杯。更新.......

我昨天遇到了一个类似的问题,这让我觉得昨天找到的解决方案有点简单。

事实证明,这个问题已经在其他地方提到过——它基本上是我的客户数据不好的产物。

从包中的数据源运行的存储过程必须命中索引。我在这些数据源中有查询,它们与具有主键的表对话,但由于这些特定查询中的错误客户数据,连接必须引用其他字段,我对表数据运行了一些清洁任务并创建了一个唯一的数据表从他们。

从包中的数据源运行相同的查询(现在连接引用主键)现在可以在几秒钟而不是几小时内运行。

所以我读到的关于其他人类似问题的所有事情,推测是由于查询了整个表,而在执行前阶段的事情可能接近事实...... . 对我来说,解决方案是查看基础数据并让它吱吱作响。

希望对将来的人有所帮助

马特 H

于 2010-01-26T21:25:28.397 回答
0

我不知道问题是什么。您可以尝试将结果输出到临时表,然后将这些结果移动到电子表格中。

于 2010-01-25T15:32:57.040 回答