我有一个部署到SQL Server 2016的Integration Services项目。 在这个项目中,我使用Oracle Provider for OLEDB从旧的Oracle数据库中提取数据。 extract包基本上截断目标(SQL Server 2016)数据库中的表,然后使用数据流任务提取大约300,000行和大约80列的表(基本上只是在SQL Server上创建一个副本)。
使用Visual Studio运行包时,我们从未遇到过任何问题。但是当从SSISDB运行包大约一半时,包失败并出现“意外错误”。 SSIS日志中没有任何内容。
查看事件日志会发现以下错误:
错误应用程序名称:ISServerExec.exe,版本:13.0.4457.0,时间戳:0x5a0384d1 错误模块名称:KERNELBASE.dll,版本:6.3.9600.18666,时间戳:0x58f32841 异常代码:0xc0000005 故障偏移:0x00015608 错误进程id:0x37e8 错误应用程序启动时间:0x01d36de21b43d295 错误应用程序路径:C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ DTS \ Binn \ ISServerExec.exe 错误模块路径:C:\ Windows \ SYSTEM32 \ KERNELBASE.dll 报告ID:71f91df2-d9d5-11e7-80d7-005056a12e2d 错误包全名: 错误的包相关应用程序ID:
我在SQL Server 2012中发现了此问题的注释,其中包含Microsoft的修补程序,但SQL Server 2016没有。
我尝试过的事情:
我还注意到失败有时会在大约40秒后发生(这也是它成功运行所需的时间),有时它会持续大约8-10分钟,即使错误记录的时间大约是40秒它开始了。
感谢您的帮助。
更新 我认为这是一个性能问题。当我将从330K加载的行数减少到20K时,它可以100%的时间工作。 因此我将其更改为逐步加载(对于单个包,我认为添加RAM不是一个好主意。)
谢谢大家。