更新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秒。
答案 0 :(得分:0)
您为什么期望它在一秒钟内运行?您是否在以前的版本上尝试过?如果是的话,您是从哪个版本升级的?之前花了多少时间?
我正在SQL Server 2017上对此进行测试,在i7笔记本电脑上需要3秒。
如果您想更深入地学习,可以遵循this guide并使用Process Monitor。
如果您没有发现查询在升级版本上的运行速度更快,请不要假设该查询的运行速度应该更快。
请记住,xp_cmdshell
是相当古老的功能,如今已被弃用。
您正在通过xp_cmdshell
运行什么命令?
CMD
以其缓慢而闻名。如果您的机器也很旧,我不会留下深刻的印象。