这是我的第一个问题,所以请耐心等待,如果我可以付款,我也会尝试在某个地方回答,但不确定我的技能是否已达到目标。
我在SQL 2008中有一个存储过程,目前执行大约600多行的结果,它在其中有联合,并且多次使用用户定义的函数。没有什么离谱的。查询在7秒内通过Management studio中的查询窗口完成。
在BIDS中,编写SSIS我使用与OLEDB源相同的SP作为数据流的一部分。结果集输出到Excel。
同样的查询在完成之前的40分钟内在预执行阶段内挂起。
我尝试重新创建相同的数据流,因为有一些奇怪的怪癖,我已经尝试在查询中替换UDF以查看是否存在问题但无济于事。
有没有人知道问题可能是什么,或者我可以做些什么来进一步调查。
亲切的问候,
马特H
答案 0 :(得分:2)
您是否尝试在sp中运行查询作为源而不是sp?这有点慢吗?
答案 1 :(得分:1)
为所有帮助过的人欢呼。 更新.......
我昨天遇到了类似的问题,这让我觉得昨天找到的解决方案有点容易。
事实证明,问题在其他地方已被提及 - 它是我的客户数据基本上不好的产物。
从包中的数据源运行的存储过程必须达到索引。 我在这些数据源中查询了与具有主键的表,但由于这些特定查询中的客户数据不好,连接必须引用其他字段,我在表数据上运行了一些清洁任务并创建了一个唯一的数据表从他们。
从包中的数据源运行相同的查询(现在使用连接引用主键)现在可以在几秒而不是几小时内运行。
所以我读过关于其他人类似问题的所有事情,其中推测是由于整个表格被查询以及在执行前阶段的事情可能接近真相...... ....对我来说,解决方案一直是查看基础数据并让它发出吱吱声。
希望将来帮助某人
马特H
答案 2 :(得分:0)
我不知道问题是什么。您可以尝试将结果输出到临时表,然后将这些结果移动到电子表格中。