修剪大型SQL Server数据库


13

我有一个大型SQL Server 2008测试数据库(1.9TB),我想减小其在磁盘上的大小。我一直在删除未使用的表,并清除大量数据,但是磁盘上的大小却没有减少。我该怎么办?

我已经看过SSMS中的收缩任务,但是选择令人困惑。我要收缩数据库或文件吗?有什么选择?

在此处输入图片说明 在此处输入图片说明


如果您正在寻找减小尺寸,请阅读本- sqlservercentral.com/articles/data-modeling/71725
SqlSandwiches

Answers:


10

选择第二个单选按钮Reorganize pages before releasing unused space,然后在Shrink file to:选项中放入指定的最小MB。如果您放置的MB小于指定的MB,将得到纠正。然后单击确定。

我发现一直使用DBCC命令来完成这些工作,因为在我的某些情况下GUI不能工作。

另请注意,多余的空间是有原因的。您将需要空间来实现未来的增长,但这是性能方面的一个全新主题。


3
为了更好地回答这个问题,我将解释缩小数据库和缩小文件之间的区别,以及释放未使用的空间和重组页面之间的区别。相反,您只是说了“做到这一点”而没有解释。
Nick Chammas

5

如果您有可用的2008压缩版本(企业版或开发人员版),则应该能够使用压缩的索引和表来缩减大型数据库。MS白皮书“ 数据压缩:策略,容量规划和最佳实践 ”应该能够帮助您找到所需的内容。引用它:

“Microsoft®SQLServer®2008数据库软件中的数据压缩功能可以帮助减小数据库的大小,并提高I / O密集型工作负载的性能。但是,数据库服务器上需要额外的CPU资源来进行压缩和压缩。在与应用程序交换数据时,先对数据进行解压缩,因此,在决定要压缩的表时,了解工作负载特征非常重要,本白皮书提供了以下方面的指导:

How to decide which tables and indexes to compress
How to estimate the resources required to compress a table
How to reclaim space released by data compression
The performance impacts of data compression on typical workloads"

是一个简短的解释。

您可以使用存储过程sp_estimate_data_compression_savings找到可以节省多少空间的估计

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.