更新后,SQL Server的xp_cmdshell变慢了

时间:2019-08-27 19:23:57

标签: sql-server performance xp-cmdshell

更新Windows和SQL Server之后,xp_cmdshell运行缓慢。我们正在运行Windows Server 2016和SQL Server 2016 SP1。我们已经将SQL Server完全更新为SP2 CU8,而行为没有任何变化。

我们的Windows Server的性能似乎很棒。另外,我们可以快速地批量运行类似的命令。我们的SQL Server的性能似乎也很好。

我猜测问题出在每个需要Windows环境的命令,也许最近Windows有所改变?但是,在运行相同版本的SQL Server 2016的虚拟机上,我们看不到任何问题。

我们了解启用xp_cmdshell会带来的安全风险,并接受这些风险。

这是一些我们用来测试xp_cmdshell上的速度的代码。

EXEC master..xp_cmdshell 'exit 0' --Simple, Open cmd, and exit
GO 25 --Run the command 25 times

我希望这段代码能在一秒钟内运行,但是运行需要15到20秒。

1 个答案:

答案 0 :(得分:0)

您为什么期望它在一秒钟内运行?您是否在以前的版本上尝试过?如果是的话,您是从哪个版本升级的?之前花了多少时间?

我正在SQL Server 2017上对此进行测试,在i7笔记本电脑上需要3秒。

如果您想更深入地学习,可以遵循this guide并使用Process Monitor

如果您没有发现查询在升级版本上的运行速度更快,请不要假设该查询的运行速度应该更快。

请记住,xp_cmdshell是相当古老的功能,如今已被弃用。

您正在通过xp_cmdshell运行什么命令?

CMD以其缓慢而闻名。如果您的机器也很旧,我不会留下深刻的印象。