回答

0

任何程序的四个关键资源是可用内存,处理器,磁盘空间和磁盘使用情况。

让我们依次调查其中的每一个。可用内存在SQL Server中管理良好(请参阅here)。默认行为是从一堆内存开始,然后根据需要增加它。如果您的查询负载不变,那么SQL Server应该达到最大内存量并停止增长。这听起来像是你的查询负载在一段时间内是一致的,所以内存不会是一个大问题。此外,许多SQL服务器配置都会修复内存大小以避免与其他处理器的干扰。

处理能力。这可能是一个很大的问题。 SQL Server需要处理能力。处理器可能被其他Windows进程使用。这会减慢查询速度,尤其是那些正在处理(而不是I/O)受到约束的查询。但是,这可能会在多处理器机器上得到缓解。给定的SQL Server实例可能会分配一定数量的处理器。其余的可以用于Windows。

磁盘空间。这没有什么影响。通常,所需的磁盘可用或不可用(并且需要它的查询失败)。临时磁盘空间是一个例外,其可用性会影响查询执行计划。通常,临时空间会放在自己的驱动器上,以避免与其他进程不必要的冲突。

I/O带宽。 SQL Server需要通过文件系统与磁盘进行通信。这可能是一个真正的性能拖拽,它可能发生在多个不同的级别。操作系统本身可能会饱和I/O调用,从而减慢数据库的速度。 CPU和磁盘之间的网络可能会饱和,从而减慢读写速度。磁盘系统本身可能会因为多个并发操作而变得缓慢 - 即使是来自不同的服务器。这可以在虚拟环境中变得更加复杂。

答案是肯定的。 Windows进程可能会影响SQL查询的性能。我最好的猜测是,这种影响可能会导致吞吃处理器或者占用磁盘带宽。

+0

您可以刷掉内存使用情况,这是唯一真正可以控制的资源。 – Guffa

0

是的,数据库服务器与机器上运行的任何其他资源共享资源,所以任何资源密集型进程都会显着影响数据库性能。

一个重要的资源是内存。如果SQL Server有任何用处,它将默认使用所有可用内存。如果您在服务器上运行任何其他进程,则应该限制SQL Server的内存使用,以便分配少一点,以便为其他进程留出空间,以减少内存交换。