0

我们有一台 8 CPU 2.5GHz 的机器和 8GB 的​​ RAM,它执行 SQL 查询的速度比双核 2.19GHz 的 4GB RAM 慢。

为什么会出现这种情况,因为两台机器上都安装了 Microsoft SQL Server 2000?

4

5 回答 5

2

只需检查这些链接以指示瓶颈所在的位置

http://www.brentozar.com/sql/

我认为磁盘布局和 SQL Server 数据库文件造成问题的位置。

于 2009-04-15T11:15:27.407 回答
1

此外,您可能有不同的 SQL Server 设置(内存分配和 AWE 内存、线程、最大查询内存、处理器关联、优先级提升)。

于 2009-04-15T11:17:09.043 回答
1

我们的多核服务器解决方案(我们的应用程序执行许多非常复杂的查询,这些查询往往会创建许多线程,这些线程有时会开始互锁甚至死锁):

sp_configure 'show advanced options', 1
reconfigure
go
sp_configure 'max degree of parallelism', 1
reconfigure

这不是理想的解决方案,但我们没有注意到其他操作的任何性能损失。

当然,您也应该优化磁盘布局,有时会限制 64 位服务器的 SQL 服务器内存。

于 2009-04-15T11:26:53.230 回答
0

检查两台机器上相同查询的执行计划,如果可能,请在此处发布。

很可能会是这样。

于 2009-04-15T11:24:28.167 回答
0

请记住,仅仅因为一台机器比另一台机器有更多的 CPU 以更高的时钟速度和内存运行,它不一定会比另一台更快地解决给定的问题。

尽管您没有提供详细信息,但 8 CPU 机器可能有 8 个插槽,每个插槽都有一个单核 CPU(比如 P4 时代的 Xeon)和 1 GB 的本地(比如 RDRAM)RAM。第二台机器是配备 4GB DDR2 RAM 的现代 Core 2 Duo。

虽然机器 #1 中的每个 CPU 具有更高的单独频率,但 netburst 架构的时钟对时钟比 Core 2 架构慢得多。此外,如果您的 CPU 负载较轻,但内存密集型负载不适合第一台机器上 CPU 的 1GB 本地内存,那么您在第一台机器上的内存访问可能会更加昂贵(因为它们必须发生)通过其他 CPU)。此外,Core 2 机器上的 DDR2 比 Xeon 中的 RDRAM 快得多。

CPU 频率和总内存并不是一切——CPU 架构、内存类型以及 CPU 和内存层次结构也很重要。

当然,正如其他答案所暗示的那样,它可能是一个更简单的答案——SQL Server 在尝试并行化查询时绊倒了自己。

于 2009-04-15T12:03:57.213 回答