我有一个SQL Server 2014数据库转储,大约是。 60GB大。在SQL Server Management Studio中,显示原始数据库,“ROWS Data”的初始大小为~99000MB,“LOG”的初始大小为~25600MB。
现在数据库中有一个大约10GB的视图表,我可以刷新/清理。
删除这些表中的数据后,减少数据库物理大小的最佳方法是什么?我发现很多帖子都在处理SHRINKDATABASE,但有些文章因为碎片和性能不好而不推荐它。
提前致谢。
答案 0 :(得分:0)
这是我用来减少使用空间并释放数据库空间和实际驱动器空间的代码。希望这会有所帮助。
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
答案 1 :(得分:0)
我建议您使用,而不是使用DBCC SHRINKDATABASE DBCC SHRINKFILE,显然你的表应该存储在不同的FILEGROUP上。 然后,您可以减少数据库的物理大小,从而优化碎片。
希望这可以提供帮助