首先,如果您可以避免缩小生产数据库,那么就这样做.从长远来看,购买额外的磁盘存储几乎总是更实用的解决方案.
有一个原因是您的数据库数据/日志文件已经增长到当前大小,除非您从数据库中清除了数据,否则很可能(如果不是很确定)您的数据库将再次增长到当前大小,发布缩小运动量.
考虑到这一点,您应该确定数据库增长的原因.
最后,如果您绝对必须缩小数据库,请选择明智的时间,即在您的实时系统通常工作负载较低时执行此维护.收缩数据文件会导致大量磁盘I/O,尤其是在要重新组织数据页时.
然后确定哪些数据文件或日志文件包含最多可用空间,并将这些文件或目标文件单独收缩.如果只有具有大量可用空间的日志文件,则执行数据库范围的缩减练习是没有意义的.
为此,请参阅DBCC SHRINKFILE命令的文档.
有用的信息:
确定整个数据库中的可用空间量:
EXEC sp_spaceused
Run Code Online (Sandbox Code Playgroud)
确定可用日志空间量:
DBCC SQLPERF('logspace')
Run Code Online (Sandbox Code Playgroud)
确定每个数据/日志文件的可用空间量:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2029 次 |
| 最近记录: |