我有超过百万条记录的表。SSIS OLEDB SQL命令执行缓慢
- 当我执行我的SSMS查询约需1:24不到2分钟,确保在任何时间点,并返回60万左右的记录。
- SSIS花费了几个小时的时间,事实上我只能导出一次。
下面是示例SQL:
SELECT distinct
A.Col1, A.Col2, A.Col3, A.Col4, A.Col5, A.Col6, A.Col7, B.Col3
FROM tblA A
inner join tblB B on A.Col1 = B.col1 and
A.Col2 = 'AB' AND A.Col3 Not In ('A','B','C') AND
A.Col3 In ('FPC','FPE','PRN','SUB','RVW','FPO','FEV','PRM')
注:索引做存在在选择SQL查询中的所有列(和where子句中提到的列)。
在SSIS中,
- 我有控制流数据流任务。
- OleDB Source with SQL query command。
- OleDB目的地tbl。
什么可能导致SSIS延迟?
SSIS执行是否与源服务器和目标服务器在同一台计算机上运行,或者是通过网络进行的部分操作? – RBarryYoung 2013-02-25 22:55:46
目标服务器正在执行或在网络上,但执行sql需要很长时间(SSIS执行主机与源相同的机器)。 – user1810575 2013-02-25 23:05:57
有什么建议?我不能在这里使用Execute sql任务,因为源和目标服务器/ db是不同的。 – user1810575 2013-02-25 23:34:55