2011-03-11 43 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