2011-03-11 42 views
1

在10個演出中繼承一個數據文件(主要)的最小大小的數據庫,將次要文件的最小大小轉換爲6個演出。收縮低於初始大小的數據文件SQL Server 2005

  1. 爲什麼有人創建了輔助數據文件(NDF)?
  2. 如何將這些縮小到低於爲惡魔設置的初始尺寸以下。

回答

2
1. Why would someone have created a secondary data file (NDF)? 

這是一種方式來獲得創建操作系統上的兩個文件。一些優點:

  • 2文件句柄
  • 可能在不同的磁盤或存儲子系統分裂(快/慢),即使你不這樣做,馬上
  • 進行分區
  • 每個控制準備文件操作,例如
  • 以下的shrinkfile允許將prod系統上的大型數據庫恢復到沒有足夠單個磁盤的單個磁盤的測試/ dev系統上。因此,產品系統上的兩個400GB文件(同一個文件夾)被恢復到dev系統上的兩個不同的500GB磁盤上。

2. How do I shrink these below the initial sizes set for the files 

使用DBCC SHRINKFILE而不是DBCC SHRINKDATABASE。只要它大於當前存儲的數據大小,它可以設置爲任何所需的大小,甚至小於初始大小。爲了達到更小的尺寸,設定目標

DBCC SHRINKFILE (1, 0); -- file id 1, to 0% free space 

要找出該文件的ID,您可以使用(而在DB)

select * from sysfiles 
0
  1. 您可以創建次要數據文件通過多個磁盤驅動器分佈數據庫。

  2. 您無法將原始文件縮小到初始大小以下。您可以縮小NDF文件以使其爲空(請參閱DBCC SHRINKFILE,EMPTYFILE選項),然後刪除文件並以您想要的大小重新創建它(如果需要)。收縮會將數據移動到文件組中的其他文件。

+0

這是奇怪的,因爲NDF文件是相同的驅動器上(和文件夾)作爲MDF。 – Caveatrob 2011-03-11 20:34:47

+0

@Martin,我同意你可以縮小初始大小以下的輔助文件,但我不認爲這是真的與MDF文件。 – bobs 2011-03-11 20:53:23

+0

我刪除了我的評論,因爲我看到理查德的回覆貼出了我所作的觀點和更多。這是來自回答中鏈接的引用,雖然「您可以將文件縮小到小於創建時指定大小的大小,這會將最小文件大小重置爲新值。」 – 2011-03-11 21:05:30