您的位置:首页 > 其它

文件组转移数据后无法收缩数据文件

2016-04-28 11:10 239 查看
/*
文件名称	文件设置大小(MB)	文件所占空间(MB)	所占空间率%  文件组
test	    50000	            536	                1.1          PRIMARY
test_log	2554	            78	                3.1          LOG
d1	        5	                0	                1.3          rpt
d2	        497	                497	                100.0        rpt
*/
--希望将 d2 中的数据移到 d1 , 再收缩 d2
--将指定文件中的所有数据迁移到同一文件组中的其他文件。
--由于数据库引擎不再允许将数据放在空文件内,因此可以使用 ALTER DATABASE 语句来删除该文件。
DBCC SHRINKFILE(d2,emptyfile)
/*
查看相关信息:
文件名称    文件设置大小(MB)  文件所占空间(MB) 所占空间率%
test        50000             536              1.1
test_log    2554              46               1.8
d1          497               497              100.0
d2          497               0                0.0
*/

--将文件末尾的所有可用空间释放给操作系统,但不在文件内部执行任何页移动。 数据文件只收缩到最后分配的区。
DBCC SHRINKFILE (d2, TRUNCATEONLY)
/*
提示信息:
不能收缩 ID 为 13 的数据库中 ID 为 4 的文件,因为它正由其他进程收缩或为空。
*/
--将文件改大 1 MB
ALTER DATABASE [test] MODIFY FILE ( NAME = N'd2', SIZE = 498MB )
--再次收缩,成功!
DBCC SHRINKFILE (d2, TRUNCATEONLY)


参考相关文档:

https://msdn.microsoft.com/zh-cn/library/ms189493.aspx

点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: