“分配SSIS 2012”;isserverexec";使用启动关联处理到单CPU核心

“分配SSIS 2012”;isserverexec";使用启动关联处理到单CPU核心,ssis,Ssis,在SSIS 2008中,我们通过使用Start Affinity方法分配“DtExec”进程来并行运行包 但在SSIS 2012中,包由外部进程“ISserverexec”执行。 所以问题是,在多核处理器机器中,是否有任何选项可以将每个包进程“ISserverexec”分配给特定的CPU 感谢ISServerExec是通过SSISDB中的catalog.start_执行启动的,它调用了创建ISServerExec.exe进程的内部SQLCLR存储过程。用dtexec.exe/ISSERVER执行

在SSIS 2008中,我们通过使用Start Affinity方法分配“DtExec”进程来并行运行包

但在SSIS 2012中,包由外部进程“ISserverexec”执行。 所以问题是,在多核处理器机器中,是否有任何选项可以将每个包进程“ISserverexec”分配给特定的CPU


感谢

ISServerExec是通过SSISDB中的catalog.start_执行启动的,它调用了创建ISServerExec.exe进程的内部SQLCLR存储过程。用dtexec.exe/ISSERVER执行它,甚至用ISServerExec.exe执行包

顺便说一句,2012/2014年没有办法限制SSIS包的资源,例如CPU核心。例如,SQL Server中的资源调控器

有两种变通方法

  • 如果您使用的是Windows Server 2008R2或更早版本(如果运行的是SQL Server 2012,则可能没有),则可以使用Windows系统资源管理器。请注意,它在Windows Server 2012及更高版本中已被弃用

  • 或者您可以在控制流或数据流中的EngineThreads上使用MaxConcurrentExecutables属性。这是我通常做的,我发现作品是最好的。更多信息:


  • 由于从未这样做过,您能否帮助我理解为什么启动dtexec过程中使用的步骤不适用于isserverexec?当然,在SSIS 2008中,dtexec是一个命令行实用程序,通过使用它,我们可以调用/执行包,但SSIS 2012附带了新的SSIS目录,SSIS包由DtExec启动,但由CLR过程执行,此CLR过程调用“ISserverexec”,我认为它不能用作命令行。此Exe位于“C:\Program Files\Microsoft SQL Server\110\DTS\Binn\ISServerExec.Exe”,供您参考。希望这有帮助。这是一个设置关联“Start/affinity 1/Min DTEXEC/F Master.DtsX”的示例