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

标签 sql sql-server

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

旧机器是双核 Intel I3 和 4g 内存。新机器是四核 Intel I7,16g 内存。

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

可能是什么原因?

编辑:

尚未更新数据库统计信息。会那么做。 尚未对索引进行碎片整理。也会这么做。 操作系统:旧机器运行Windows Server 2008。新机器运行Windows Server 2012。 硬盘:SSD raid 1。本地物理驱动器。分为两个逻辑驱动器,一个用于数据库存储,另一个用于日志存储。

新机器正在以完整的性能设置运行。它是一台机器,与其他机器没有任何平衡。 它专用于该数据库任务,机器上没有运行其他任何东西。

最佳答案

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

  1. 新硬盘速度慢
  2. 确保数据库文件和事务日志已进行碎片整理。您需要停止 sql server 并执行碎片整理。您可以使用 Microsoft 的 Contig 之类的东西 ( http://technet.microsoft.com/en-in/sysinternals/bb897428.aspx )
  3. 较新的硬盘文件系统是否已加密?
  4. 检查防病毒软件。如果您启用了实时文件系统检查,对于某些防病毒品牌来说,速度会显着降低

最可能的原因是上面的 2 或 4

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

关于sql - 移动 SQL Server 数据库会降低性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762765/

相关文章:

php - 如果 from_user 已经发送了消息,如何忽略其他消息?

mysql - 如何检索带有 1 :N relation 的列表

c# - 并发访问数据库——防止两个用户获取相同的值

sql-server - 在 MS SQL 中将行转换为列

c# - 无效的对象名称 SQL 选择

sql - 限制二元组中元素出现的次数

sql - 获取指定字符之间的数值

sql-server - 当 use 不为 null 时,结果不同

sql - 按名称查找所有数据库对象?

SQL 按客户端位置分组