我的任务是缩小SQL Server 2005数据库。这是一个实时数据库,运行速度约为35gb。
提前致谢。
答案 0 :(得分:7)
首先,如果您可以避免缩小生产数据库,那么就这样做。从长远来看,购买额外的磁盘存储几乎总是更实用的解决方案。
有一个原因是您的数据库数据/日志文件已经增长到当前大小,除非您从数据库中清除了数据,否则很可能(如果不确定)您的数据库将增长到当前大小再次,收缩后运动。
考虑到这一点,您应该确定数据库增长的原因。
最后,如果您绝对必须缩小数据库,请选择明智的时间,即在您的实时系统通常工作负载较低时执行此维护。收缩数据文件会导致大量磁盘I / O,尤其是在要重新组织数据页时。
然后确定哪些数据文件或日志文件包含最多可用空间,并将这些文件或目标文件单独收缩。如果只有具有大量可用空间的日志文件,则执行数据库范围的缩减练习是没有意义的。
要执行此操作,请参阅DBCC SHRINKFILE命令的文档。
实用信息:
确定整个数据库中的可用空间量:
EXEC sp_spaceused
确定可用日志空间量:
DBCC SQLPERF('logspace')
确定每个数据/日志文件的可用空间量:
SELECT
name AS 'File Name' ,
physical_name AS 'Physical Name',
size/128 AS 'Total Size in MB',
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS 'Available Space In MB',
*
FROM sys.database_files;
答案 1 :(得分:4)
打开SQL Server Management Studio。右键单击您的数据库 - >任务 - >收缩 - >数据库
是。数据库仍然有效。
很难说。这取决于35Gb文件中有多少可用空间。如果数据库实际上使用所有35Gb进行存储(而不是保留可用空间),那么您的数据库根本不会缩小。