sql server 2000将所有的数据库记录在两个位置上:主数据库和该数据库的主文件。很多时候,数据库引擎使用在主数据库中找到的文件位置信息。当然也有例外,比如,当您执行的某些操作,使得数据库引擎使用主文件位置信息,初始化主数据库中的文件位置输入,就是个特例。这些操作正从sql server 7.0升级到sql server 2000,恢复主数据库,并使用sp_attach_db系统存储过程将一个数据库添加到sql server 2000中。
四、数据文件空间分配:
在sql server 2000的表格或索引中存储信息之前,必须在一个数据文件内部分配一些自由空间给那个对象。分配给表格和索引的自由空间的每个单位称为“扩展盘区”(extent)。一个扩展盘区为64kb,由8个连续的页面组成,每个页为8k。共有两种类型的扩展盘区:混合扩展盘区和统一扩展盘区。
每次创建一个新表格或索引时,sql server 2000寻找一个带自由空间的混合扩展盘区,然后将该自由页分配给该新建对象。一个页面只包含一个对象的数据。当某个对象需要额外的空间时,sql server 2000将混合扩展盘区中的自由空间分配给该对象,直到它一共使用了8个页面为止。在这以后,sql server 2000分配一个统一扩展盘区给那个对象。如果所有的数据文件上都没有自由空间,且启动了“自动增长”选项的话,那么sql server 2000将以循环算法增长这些数据文件。