【问题标题】:How to decrease size of SQL Server 2014 database如何减小 SQL Server 2014 数据库的大小
【发布时间】:2016-12-07 06:08:52
【问题描述】:

我有一个大约是 SQL Server 2014 数据库转储。 60GB 大。在 SQL Server Management Studio 中,原始数据库显示“ROWS 数据”的初始大小约为 99000MB,“LOG”的初始大小约为 25600MB。

现在数据库中有一个大约 10GB 大的视图表,我可以对其进行刷新/清理。

删除这些表中的数据后,减小数据库物理大小的最佳方法是什么?我发现很多帖子都在处理 SHRINKDATABASE,但由于碎片和性能不好,有些文章不推荐它。

提前致谢。

【问题讨论】:

  • 您是否有特定的原因要缩小它?因为即使你缩小它,它也会再次开始变大。此外,那些不这样做的建议是正确的。如果缩小数据库,可能会损害 SQL 性能。
  • 是的,我们需要让它尽可能小,因为我们需要共享它,并且我们可以删除的表中的数据总共约为 40GB。所以潜力很大。
  • 人们不推荐 SHRINK 的原因是它不是处理在生产环境中运行的数据库的“正确”策略。如果您需要部署版本测试或开发或与其他开发人员共享它或类似的东西 - 我看不出您担心缩小的理由。因此,取决于您实际想要实现的目标 - 缩小可能是可行的。除非您确定自己在做什么,否则不要在生产版本上执行此操作。 (这些年来我缩减了很多数据库——不是我的第一选择,但很好——它是盒子里的一个工具)
  • 将这些表放入单独的 FILEGROUP 甚至单独的数据库中。如果需要,只缩小那个数据库/文件。 LOG 的情况也不清楚:它是否处于完全恢复模式?您是否在进行 DB 和/或 LOG 备份?
  • 原始数据库处于完全恢复模式,所以我猜我得到的数据库转储是相同的。由于原始数据库总和〜130GB而转储只有60GB,有没有办法减少初始大小?当我想将一个 60GB 的数据库导入到一个 100GB 的文件系统时,我收到一个错误,提示系统需要 130GB 可用空间才能导入转储。

标签: sql-server sql-server-2014


【解决方案1】:

这是我用来减少使用空间并释放数据库空间和实际驱动器空间的代码。希望这会有所帮助。

USE YourDataBase;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE YourDataBase
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (YourDataBase_log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE YourDataBase
SET RECOVERY FULL;
GO

【讨论】:

  • ShrinkDatabase:收缩所有文件 ShrinkFile:只有一个文件 例如,您可能有一个日志备份问题并且它已经失控,因此您运行 DBCC SHRINKFILE。您几乎从不使用 ShrinkDatabase。
  • 唯一的事情:如果这种情况对他的数据库来说是可以的,那么就没有必要切换回 FULL。这没有任何意义。
【解决方案2】:

我建议你不要使用 DBCC SHRINKDATABASE DBCC SHRINKFILE,显然你的表应该存储在不同的文件组中。 然后,您可以减少数据库优化碎片的物理大小。

希望对你有帮助

【讨论】:

    【解决方案3】:

    您需要使用以下查询来缩小您的DataBase

    ALTER DATABASE [DBNAME] SET RECOVERY SIMPLE WITH NO_WAIT
    DBCC SHRINKFILE(PTechJew_LOG, 1)
    ALTER DATABASE [DBNAME] SET RECOVERY FULL WITH NO_WAIT
    

    运行此查询后检查您的日志文件。 它的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 2010-09-28
      • 2013-08-03
      • 1970-01-01
      相关资源
      最近更新 更多