SQL在不同机器上的不同性能

时间:2019-03-28 12:53:19

标签: sql sql-server

我有两台不同的计算机,在两台计算机上都运行基于SQL Server 2017 Developer Edition的实例。两台机器具有100%相同的SQL Server引擎结构(表,视图,SP,索引等),但机器规格不同。 规格如下:

Machines-1(便携式计算机) RAM:12 GB(100%分配给SQL) 处理器:Intel Core i7-7500U 2.7GHz 储存空间:SSD 500GB 操作系统:Windows 10 Pro

Machine-2(台式机) RAM:32 GB(100%分配给SQL) 处理器:Intel Xeon Silver 4110CPU 2.10GHz 存储:适用于OS的M.2和适用于SQL Server的HDD 操作系统:Windows Server 2016

我现在面临的问题是,与Machine-1相比,在Machine-2上进行相同的查询和SP花费的时间要多得多。 在Machine-1上,针对复杂查询的最大查询处理时间为25分钟,在Machine-2上为1.5小时。

请帮助我解决此性能问题,因为这会严重影响日常运营。

2 个答案:

答案 0 :(得分:0)

您不应该将SQL Server的内存分配设置为100%,您需要为操作系统留一些空间,否则一切都会受到影响。

您可能还会遇到并行性问题,该问题可能使用了比实际需要更多的处理器。结果,您会看到许多CXPACKET等待。根据以下Guidelines

调整最大并行度
  • 具有单个NUMA节点且少于8个逻辑处理器的服务器使MAXDOP等于或低于#个逻辑处理器
  • 具有单个NUMA节点和大于8个逻辑处理器的服务器将MAXD​​OP保持在8
  • 具有多个NUMA节点且每个NUMA节点少于8个逻辑处理器的服务器,使MAXDOP等于或低于每个NUMA节点#个逻辑处理器。
  • 服务器具有多个NUMA节点且每个NUMA节点具有8个以上的逻辑处理器,将MAXD​​OP保持为8

您还需要配置Cost Threshold for Parallelism,因为对于实际问题,默认值太低。

最后,您需要考虑笔记本电脑上的数据位于SSD上,而台式机上的数据位于HDD上。这将对数据的检索和处理速度产生巨大的影响。

我不确定是否还有其他可以解决的问题。确保两个地方的统计信息都是最新创建的,并且索引维护正在运行。

答案 1 :(得分:0)

  • 为sql server使用最大内存上限
  • ssd和hdd可以在IO方面产生很大的不同
  • 两台机器可以具有不同的sql配置
  • 这些计算机中可能还有其他进程正在运行,例如,如果设置中未排除sql server,则防病毒应用程序可以扫描mdf和tempdb

要快速找出这两台机器的区别,

通过Sp_Blitz运行健康检查