fddd 发表于 2013-12-11 09:09:46

关于sql server 2008 的mdf收缩问题

原帖地址:http://social.msdn.microsoft.com/forums/windowsazure/pt-br/388f92e1-9a1e-497d-bde1-6664561fd44e/sql2008-mdf

关于sql server 2008 的mdf收缩问题


USE 你的库名;
GO
-- 数据库空间使用情况
EXEC sp_spaceused;

-- 查下文件空间使用情况
SELECT
    file_id, name,
    [文件大小(MB)] = size / 128.,
    [未使用空间(MB)] = (size - FILEPROPERTY(name, N'SpaceUsed')) / 128.
FROM sys.database_files

-- 表空间使用情况
DECLARE @tb_size TABLE(
    name sysname,
    rows int,
    size varchar(100),
    data_size varchar(100),
    INDEX_size varchar(100),
    unused_size varchar(100)
);
INSERT @tb_size
EXEC sp_msforeachtable '
sp_spaceused ''?''
'
SELECT * FROM @tb_size

用上面的语句检查一下你的数据库中的空间使用情况

其中,文件空间情况中的未使用空间表示你的文件可以通过 DBCC SHRINKFILE 来释放的磁盘空间

如果可以释放的空间很小, 那么你可以通过后面的查表空间的语句来查到是那些表占用了大的空间, 对于 unused_size 列的值很大的表, 你可以通过 REBUILD 聚焦索引(一般是主键) 的方式, 重组表的数据存储, 以便能够释放空间占用

再强调 原帖地址:http://social.msdn.microsoft.com/forums/windowsazure/pt-br/388f92e1-9a1e-497d-bde1-6664561fd44e/sql2008-mdf

qq524061227 发表于 2013-12-15 21:31:41

执子之手、与子偕老?你演给我看吧.

lichengcom2009 发表于 2013-12-21 11:28:53

亲爱的:想你的心要怎么让你知道。

淑昊柠 发表于 2013-12-27 09:54:05

乜许忘记是能做的唯一,只要你能够幸福开心。
页: [1]
查看完整版本: 关于sql server 2008 的mdf收缩问题