我们最近设置了一台带有 8 个双核 CPU、20 GB RAM 和 3 个 1 TB 驱动器的新机器,这些驱动器设置在某种 RAID 中,导致我们实际使用了 2 个 1 TB 驱动器(我不是硬件人在这里)。它被设置为 ESXi 主机,我们在其中设置了许多测试环境。当前的测试在带有 SQL Server 2005 Standard 64 位 SP3 的 Windows 2003 64 位上运行。从所有报告来看,该系统应该承载的环境比我们之前的设置表现更好,但某些任务的表现却差得多。我发现了一个特定的 SQL 脚本,它在某些条件下可靠地运行得很慢,我无法理解。SQL 脚本是由 1700 多个 UPDATE 语句组成的简单系列,其开头如下所示:
UPDATE SrfItem SET fkSrfItem = 5 WHERE id = 4
UPDATE SrfItem SET fkSrfItem = 8 WHERE id = 7
UPDATE SrfItem SET fkSrfItem = 10 WHERE id = 9
Run Code Online (Sandbox Code Playgroud)
我发现如果我在这些虚拟环境之一中遵循以下过程,运行脚本需要 9-12 秒: