日期:2014-05-17  浏览次数:20481 次

关于“数据表存放在数据文件中”的一点疑惑
本帖最后由 u013344315 于 2013-12-31 19:34:12 编辑
在主文件组PRIMARY中建立了两个数据文件,一个是file_1.mdf,另一个是file_2.ndf。
那么我创建一个数据表students存放在了主文件组中,请问:
数据表students是存储在file_1.mdf中还是存储在file_2.ndf中?还是都有可能?
亦或者数据表students的一部分在file_1.mdf中,另一部分在file_2.ndf中?

------解决方案--------------------
数据表students是存储在file_1.mdf中还是存储在file_2.ndf中?


那得看你的主文件组包括了几个文件,如果主文件组就只有file_1.mdf文件,那么,因为你的表是放在主文件组中的 ,所以数据表students是存储在file_1.mdf。

如果你的主文件组包含了file_1.mdf 和 file_2.ndf,那么数据表students是存储在file_1.mdf 和 file_2.ndf上的。

------解决方案--------------------
默认是主文件组

如果要控制最好建多个文件组,建表或取聚集索引时指定文件组
------解决方案--------------------
默认是主文件
用完后,再次文件


这样设计通常要控制好每个文件的大小 
------解决方案--------------------
引用:
在主文件组PRIMARY中建立了两个数据文件,一个是file_1.mdf,另一个是file_2.ndf。
那么我创建一个数据表students存放在了主文件组中,请问:
数据表students是存储在file_1.mdf中还是存储在file_2.ndf中?还是都有可能?
亦或者数据表students的一部分在file_1.mdf中,另一部分在file_2.ndf中?
一般情况下,你的表会存在文件组中,而具体存在哪个文件,由sqlserver按比例存放,也就是横跨文件组中的数据文件
------解决方案--------------------
文件组中有多个文件的话,表里的数据会按照每个文件初始的大小比例分散在所有的文件中