通过 Windows 任务计划程序在批处理服务器上运行的计划任务有时会与 SQL Server 代理中的其他计划作业重叠,从而导致 CPU 问题。如果我们可以让 SQL Server 代理在远程服务器上执行 .exe 以确保计划永远不会冲突,我们就可以解决这个问题。
有没有办法用 SQL Server 代理来做到这一点,也许用 Powershell 命令?如果是这样,你能给我步骤吗?
远程服务器上的 .exe 是 SQL 的数据导入器。它是一个独立的.exe。我们希望它在批处理服务器上运行,这样它就不会导致数据库服务器上的资源争用。我们正在运行 SQL 2008 R2 Enterprise。
如果需要任何其他信息来回答这个问题,请告诉我。
我只做过几次而且很久以前。当时我使用了 Windows Internals 中的 PSEXEC.EXE。您可以在此处阅读说明:
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
对于 Powershell 远程执行,StackOverflow 中有一个让提问者满意的讨论。Powershell 可能是这些天要走的路。
https://stackoverflow.com/questions/9535515/powershell-execute-remote-exe-with-command-line-arguments-on-remote-computer
无论您如何运行远程作业,都可以在运行其他作业的 SQL Server 代理进程中安排它。如果您认为它对您有用,您还可以将作业设置为在定义的“空闲”时间段内运行。(我认为这不是您想要的,但您可以在http://technet.microsoft.com/en-us/library/ms189065.aspx上关于代理计划的 SQL Server 代理讨论中查看它。)