2010-01-15 63 views
0

我在MSSQL Server中有相同數據庫的2 .bak文件。一個是測試快照,另一個是生產快照。測試一個大約500 MB,生產一個大約10 GB。這是因爲測試人員有很多表格被截斷。當我在sql服務器中恢復它們時,將在\Microsoft SQL Server\MSSQL.1\MSSQL\Data文件夾中創建一個.mdf文件。但是我發現即使僅恢復測試快照,.mdf文件的大小也是大約10 GB。由於測試快照有多個表被截斷,數據較少,因此我認爲.mdf文件的大小應該小於生產快照的大小。但事實並非如此。 sql服務器是否在mdf文件中保留空間,因此兩個版本的大小相同?SQL Server中mdf文件大小的差異

+0

哪個版本的sql? – Hogan

+0

sql server 2005 – Thunderhashy

回答

2

是的,它確實保留空間。你可以在創建數據庫頁面以及稍後在屬性頁面中看到它。

+0

我們怎麼能告訴它不保留空間? – Thunderhashy

+0

犯錯...你必須分離並重新附加我的想法。試試這個:右擊數據庫,選擇任務,縮小數據庫。如果這不起作用,您可以嘗試收縮文件。 (在SQL管理工作室2008) – Hogan

+0

但我可以做到這一點後,我才恢復數據庫。我需要在恢復數據庫之前做到這一點。 – Thunderhashy

2
  • MDF =空間保留
  • BAK = 8K頁與數據

當數據庫被恢復時,它讀取來自sys.database_files大小。頁面被放回到相同的相對位置。

除非你是真的的磁盤空間,我會離開它...但如果它讓你感覺更好

您正在使用(大概數字),您可以縮小文件64000頁,但有保留12,800,000