【问题标题】:When do you compact a Sql Server Database?什么时候压缩 Sql Server 数据库?
【发布时间】:2010-12-19 11:41:21
【问题描述】:

我们有一个 SQL Server 2000 数据库,其中包含我们团队的大部分数据库,该数据库在相对较旧的服务器上运行。

最近,我们在各种应用程序中的一些数据库调用中遇到了一些奇怪的减速问题。 (所以我知道它不是特定于应用程序的)

有人向我提到我们应该考虑压缩我们的一些数据库。这样做的一般经验法则是什么?

压缩数据库是否只是一般维护?是否有大量的数据库、表或记录可能导致速度变慢并因此有助于压缩?

活跃使用的数据库数量:6

数据库平均大小:20MB,Fogbugz除外,约为11000MB

【问题讨论】:

  • 这可能更适合服务器故障。但是,实际上,您的数据库大小很小。我怀疑压缩会产生任何性能优势。通常还进行压缩以回收空间。如果数据库未压缩,性能应该不会受到太大影响(如果有的话)。

标签: sql-server sql-server-2000 maintenance


【解决方案1】:

除非您确实需要,否则您不会压缩 SQL Server 数据库(您“缩小”它)。它不是 MS Access,不会回收未使用的空间(嗯,它可以,但它掩盖了一个更重要的问题)

更有可能的是,您遇到了索引/统计问题:

  • 数据统计不足
  • 碎片化索引
  • 缺少索引

对于具有该数据库大小(小)的初学者,我建议您查看

【讨论】:

    【解决方案2】:

    在 SQL Server 中,您应该对数据库进行各种维护。

    10MB 是一个非常小的数据库,因此对您来说不值得收缩一个数据库(“紧凑”是您对 MS Access 数据库所做的,在 Sql Server 中您可以收缩)。

    相反,您的表中经常查询的列很可能没有合适的索引。或者,您拥有的索引是零散的。

    一个很好的起点是确切地查看哪些查询需要很长时间(启动 SQL Profiler 和监控是个好主意)。然后,您可以查看这些查询在做什么,它们正在访问哪些表/列,然后查看您是否有适当的索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多