Sql 缩小数据库
我的任务是收缩SQLServer2005数据库。这是一个实时数据库,运行速度约为35gbSql 缩小数据库,sql,Sql,我的任务是收缩SQLServer2005数据库。这是一个实时数据库,运行速度约为35gb 如何缩小数据库 当数据库处于活动状态时,是否可以执行此操作 当数据库bw缩小时,它会有多大 提前谢谢 打开SQLServerManagementStudio。右键单击数据库->任务->收缩->数据库 对。该数据库仍处于活动状态 很难说。这取决于35Gb文件中有多少可用空间。如果数据库实际上使用了全部35Gb的存储空间(而不是保留可用空间),那么您的数据库根本不会收缩 首先,如果可以避免缩小生产数据库,那么就
首先,如果可以避免缩小生产数据库,那么就这样做。从长远来看,购买额外的磁盘存储几乎总是更实际的解决方案 您的数据库数据/日志文件已增长到其当前大小是有原因的,除非您已从数据库中清除数据,否则很可能(如果不是肯定的话)您的数据库将再次增长到当前大小(收缩后练习) 考虑到这一点,您应该找出数据库增长的原因 最后,如果您绝对必须收缩数据库,请明智地选择时间,即在实时系统通常经历较低工作负载时执行此维护。缩小数据文件会导致大量磁盘I/O,尤其是在要重新组织数据页的情况下 然后确定哪些数据文件或日志文件包含最多的可用空间,并针对这些文件分别进行收缩。例如,如果只有日志文件具有大量可用空间,则执行数据库范围的收缩练习没有意义 为此,请参阅该命令的文档 有用信息: 确定数据库中总的可用空间量:
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;