Process SQL server查询响应时间受“影响”;“外部”;过程?

Process SQL server查询响应时间受“影响”;“外部”;过程?,process,operating-system,query-performance,response-time,Process,Operating System,Query Performance,Response Time,在像SQL Server这样的DBMS中执行的查询的性能(响应时间)是否会受到运行服务器的机器上发生的任何事情的影响?更具体地说,当运行两个Windows进程不断检查和清理机器,并处理从网络接收的数据时,响应时间是否会增加 谢谢。是的,数据库服务器正在与计算机上运行的任何其他设备共享资源,因此任何资源密集型进程都可能显著影响数据库性能 一个重要的资源是内存。默认情况下,SQL Server将耗尽所有可用内存(如果它有任何用途)。如果您正在服务器上运行任何其他进程,则应限制SQL server的内

在像SQL Server这样的DBMS中执行的查询的性能(响应时间)是否会受到运行服务器的机器上发生的任何事情的影响?更具体地说,当运行两个Windows进程不断检查和清理机器,并处理从网络接收的数据时,响应时间是否会增加


谢谢。

是的,数据库服务器正在与计算机上运行的任何其他设备共享资源,因此任何资源密集型进程都可能显著影响数据库性能


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

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

让我们依次研究每一个问题。可用内存在SQL Server中得到良好管理(请参阅)。默认行为是从一堆内存开始,然后根据需要增加内存。如果您的查询负载没有改变,那么SQL Server应该达到最大内存量并停止增长。听起来您的查询负载随着时间的推移是一致的,所以内存不是一个大问题。此外,SQL server的许多配置都会固定内存大小,以避免与其他处理器的干扰

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

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

I/O带宽。SQL Server需要通过文件系统与磁盘通信。这可能是一个真正的性能阻力,并且可能发生在多个不同的级别。操作系统本身可能会被I/O调用饱和,从而降低数据库的运行速度。CPU和磁盘之间的网络可能会饱和,从而降低读写速度。由于多个并发操作(甚至来自不同的服务器),磁盘系统本身可能会变慢。在虚拟环境中,这会变得更加复杂


答案是肯定的。Windows进程可能会影响SQL查询的性能。我的最佳猜测是,影响可能是占用处理器或占用磁盘带宽。

您会清除内存使用,这是唯一真正可以控制的资源。