我试图使用SSIS 2012从OLEDB源[SQL Server 2008]中提取数据。我试图将日期范围作为参数传递给源查询,性能非常糟糕。拉出不到10万条记录花了一个多小时。
当我从变量将其更改为SQL查询并执行表达式以传递日期范围并运行任务时,数据拉动很快。
关于如何将参数传递给源系统以及它为何会对性能造成巨大影响的任何想法。
当我在源数据库中进行跟踪检查时,来自ssis的参数将作为declare @ p1 int传递 设置@ p1 = 1 exec sp_prepare @ p1输出,N'@ P1 datetime',N'SELECT SQL到这里(转换之间的START_DATETIME(@ P1 as datetime)和dateadd(hh,-1,getdate()))',1 选择@ p1 ..... 好像我在替换字符串中的参数并将其传递给源时传递sql变量,然后输出很快。性能中的结果集差异相同。
谢谢, KARTHIK