我有两台不同的计算机,在两台计算机上都运行基于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小时。
请帮助我解决此性能问题,因为这会严重影响日常运营。
答案 0 :(得分:0)
您不应该将SQL Server的内存分配设置为100%,您需要为操作系统留一些空间,否则一切都会受到影响。
您可能还会遇到并行性问题,该问题可能使用了比实际需要更多的处理器。结果,您会看到许多CXPACKET等待。根据以下Guidelines
调整最大并行度您还需要配置Cost Threshold for Parallelism,因为对于实际问题,默认值太低。
最后,您需要考虑笔记本电脑上的数据位于SSD上,而台式机上的数据位于HDD上。这将对数据的检索和处理速度产生巨大的影响。
我不确定是否还有其他可以解决的问题。确保两个地方的统计信息都是最新创建的,并且索引维护正在运行。
答案 1 :(得分:0)
要快速找出这两台机器的区别,