Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 调试SQL Server缓慢:相同的数据库,不同的服务器_Sql Server_Sql Server 2005_Performance - Fatal编程技术网

Sql server 调试SQL Server缓慢:相同的数据库,不同的服务器

Sql server 调试SQL Server缓慢:相同的数据库,不同的服务器,sql-server,sql-server-2005,performance,Sql Server,Sql Server 2005,Performance,一段时间以来,我们新开发的(基于VMWare的)SQL Server 2005数据库服务器的速度一直很慢。最近这个问题已经到了顶点,我开始寻找问题的根源 奇怪的是:在我用作性能测试用例的存储过程中,执行速度相差30倍,这取决于我在哪个DB服务器上运行它。这是使用相同的数据库(mdf)和日志(ldf)文件,从慢速服务器分离、复制并重新连接到快速服务器。这似乎不是一个(虚拟化的)硬件问题:慢服务器的CPU容量是快服务器的4倍,内存是快服务器的2倍 据我所知,问题在于服务器的环境/配置(操作系统或SQ

一段时间以来,我们新开发的(基于VMWare的)SQL Server 2005数据库服务器的速度一直很慢。最近这个问题已经到了顶点,我开始寻找问题的根源

奇怪的是:在我用作性能测试用例的存储过程中,执行速度相差30倍,这取决于我在哪个DB服务器上运行它。这是使用相同的数据库(mdf)和日志(ldf)文件,从慢速服务器分离、复制并重新连接到快速服务器。这似乎不是一个(虚拟化的)硬件问题:慢服务器的CPU容量是快服务器的4倍,内存是快服务器的2倍

据我所知,问题在于服务器的环境/配置(操作系统或SQL Server安装)。然而,我检查了一系列变量(SQLServer配置选项、运行的服务、磁盘碎片),没有发现对测试有任何影响

我应该看什么东西?我可以使用哪些工具来调查发生这种情况的原因?

运行以收集有关SQL Server中正在运行的进程的信息。这可能是最好的开始。这会让你对那些消耗大量资源的事情有一个很好的了解


如果在索引/重建索引或重写查询后仍然存在问题,那么下一步将是运行PerfMon。

盲目检查变量和设置不会有太大帮助。你需要有条不紊地处理这个问题

  • 这两个程序的执行方式是否相同?也就是说,这个计划不同吗?快速检查是
    设置统计IO并运行这两个案例。逻辑读取的数量是否相同?物理读取的数量相同吗?写入的次数相同吗?逻辑读取或写入的差异表示不同的计划。物理读取的差异(而逻辑读取类似)表明存在缓存和内存问题。如果计划不同,您需要进一步调查实际执行计划中的不同之处。一个计划是否使用不同程度的并行性?是否使用不同的联接类型?不同的访问路径
  • 如果计划相似但执行仍然不同,并且您不能责怪IO子系统,那么您需要检查争用。使用
    将统计时间设置为ON
    并比较两种情况下的运行时间和工作时间。相似的工作时间但不同的运行时间表明在一种情况下有更多的等待。使用sys.dm_exec_请求中的wait_类型和wait_资源信息来确定争用的原因
    调查方法将在中进行更详细的讨论。

    ServerFault.com是解决这个问题的好地方。@Raj:我自己也在想这个问题。我不反对国防部把这个移到服务器故障。