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將以循環算法增長這些數據文件。