SQL Server中mdf文件大小的差异

时间:2010-01-15 19:02:44

标签: sql-server

我在MSSQL Server中为同一个数据库提供了2个.bak个文件。一个是测试快照,另一个是生产快照。测试一个大约500 MB,生产一个大约10 GB。这是因为Test one有许多表被截断。当我在sql server中恢复它们时,会在.mdf文件夹中创建一个\Microsoft SQL Server\MSSQL.1\MSSQL\Data文件。但我发现.mdf文件的sze大约是10 GB,即使我只恢复测试快照。由于测试快照有许多表被截断且数据较少,我认为.mdf文件的大小应该小于生产快照的大小。但事实并非如此。 sql server是否在mdf文件中保留空间,因此两个版本的大小相同?

3 个答案:

答案 0 :(得分:2)

是的确有预留空间。您可以在create database页面和稍后的属性页面中看到这一点。

答案 1 :(得分:2)

  • MDF =空间保留
  • bak = 8k页数据

恢复数据库时,它会从sys.database_files读取大小。页面被放回到相同的相对位置。

除非你真的缺少磁盘空间,否则我会留下它......但是如果它让你感觉更好,你可以缩小文件

你正在使用(球场数据)64,000页,但保留了12,800,000

答案 2 :(得分:1)

我认为您需要在数据库上运行以下内容。

DBCC SHRINKDATABASE (UserDB, 10);