Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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_Sql Server - Fatal编程技术网

移动SQL Server数据库会降低性能

移动SQL Server数据库会降低性能,sql,sql-server,Sql,Sql Server,我刚刚将一个大型SQL Server数据库(数据库文件大小约25G,日志大小约20G)从一台计算机移动到另一台计算机。然后,一个在旧机器上1秒内返回的查询会突然在新构建的机器上运行超过1分钟(功能更强) 旧机器是一台双核Intel I3,带有4g ram。这台新机器是一台带有16g ram的四核Intel I7 我检查了索引是否完全相同 原因可能是什么 编辑: 尚未更新数据库统计信息。我会的。 没有对索引进行分段。我也会这样做。 操作系统:旧计算机运行windows server 2008。新版

我刚刚将一个大型SQL Server数据库(数据库文件大小约25G,日志大小约20G)从一台计算机移动到另一台计算机。然后,一个在旧机器上1秒内返回的查询会突然在新构建的机器上运行超过1分钟(功能更强)

旧机器是一台双核Intel I3,带有4g ram。这台新机器是一台带有16g ram的四核Intel I7

我检查了索引是否完全相同

原因可能是什么

编辑:

尚未更新数据库统计信息。我会的。 没有对索引进行分段。我也会这样做。 操作系统:旧计算机运行windows server 2008。新版本运行windows server 2012。 硬盘驱动器:SSD raid 1。本地物理驱动器。分为两个逻辑驱动器,一个用于DB存储,另一个用于日志存储

新机器以完全性能设置运行。这是一台单独的机器,与其他机器没有任何平衡。
它是专门用于此DB任务的,机器上没有运行任何其他任务。

可能有多种原因。那是本地硬盘还是联网硬盘

  • 较新的硬盘速度较慢
  • 确保对数据库文件和事务日志进行了碎片整理。您需要停止sql server并执行碎片整理。您可以使用Microsoft()提供的类似Contig的内容
  • 较新的硬盘文件系统是否加密
  • 检查防病毒软件。如果您启用了实时文件系统检查,对于某些防病毒品牌来说,这将是一个重要因素
  • 最可能的原因是2或4以上


    一般建议,为了获得更好的性能,请将db文件和日志文件存储在单独的硬盘上(而不仅仅是不同的分区)。

    一般来说,磁盘空间和存储空间如何?存储是服务器的本地存储吗?它是同一版本的服务器吗?如果失败,可能会比较查询计划?DB STATS是最新的吗?数据库统计信息会影响查询计划。尝试更新。您肯定也应该使用来测试驱动器性能。检查您的新机器是否在平衡或类似的电源设置下运行。比较perfmon中的度量。尝试重新编译执行计划。您好,您是说从文件系统对索引或数据文件进行碎片整理?谢谢你应该整理所有与数据库相关的文件。如果它存储在单独的文件中,则包括索引。我说的是操作系统级碎片整理。数据库碎片整理(sql server维护任务)在这里也会有所帮助。但由于您使用的是SSD,所以碎片整理不会带来太多好处。当驱动器几乎满时,SSD写入性能会显著下降。您可能需要检查SSD基准点的db操作。保罗·兰德尔的博客很有用。搜索他在SSD上的所有文章。有用的读物