【发布时间】:2019-08-27 19:23:57
【问题描述】:
更新 Windows 和 SQL Server 后,xp_cmdshell 运行缓慢。我们正在运行带有 SQL Server 2016 SP1 的 Windows Server 2016。我们已将 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 秒。
【问题讨论】:
-
我最近发现的一件事是,在我们的 xp_cmdshell 运行缓慢的服务器上,xp_cmdshell 创建了一个安全事件(事件查看器),它是一个提升的令牌。在没有问题的第二台机器上,提升的令牌为“否”。根据我的阅读,这会创建一个次要配置文件,一个提升,一个不提升。这是一个可能的罪魁祸首。有没有办法控制 xp_cmdshell 要求提升令牌与否?
-
右键单击 SQL Management Studio 和“以管理员身份运行”。试试看这是否绕过提升的令牌。
-
另外,您从哪个 SQL Server 版本升级?
-
以管理员身份运行没有任何变化。从 Sql Server 2016 升级到 SP1
标签: sql-server performance xp-cmdshell