SQL Server 7.0 儲存引擎核心架構變革
SQL 7.0 重寫儲存引擎,確立現代 SQL Server 架構基石:捨棄裝置/分段,採用 OS 檔案系統;引入檔案組實現物理放置控制;重設計配置頁面 (GAM/SGAM/IAM/PFS) 為位圖結構。
核心架構優勢
- OS 檔案即資料庫檔案:.mdf (主檔), .ndf (次檔), .ldf (記錄檔)。支援自動增長/收縮,簡化空間管理。
- 檔案組:邏輯容器群組檔案。
PRIMARY 群組含系統物件;使用者自訂群組可將特定資料表/索引放置指定磁碟/RAID,實現 I/O 平行化。
- 記錄檔獨立:不屬於任何檔案組,獨立管理記錄空間,避免資料/記錄 I/O 爭用。
- 位圖配置頁面:取代鏈結清單,GAM/SGAM/IAM/PFS 採用位圖,大幅提升空間搜尋與並行配置效能。
- 零化初始化:建檔時以零填充,消除首次寫入時 OS 清零開銷,提升初期效能。
檔案組設計最佳實踐
- 單檔案單記錄檔:中小型資料庫足夠,管理最簡單。
- 多檔案策略:主檔案 (.mdf) 放系統物件;至少一個次檔案 (.ndf) 放使用者資料。
- 物理隔離:不同檔案組置於不同物理磁碟/控制器/RAID 陣列。
- 熱點分離:高頻存取資料表及其非叢集索引置於不同檔案組/磁碟。
- Join 優化:常連接的大表置於不同檔案組,磁頭平行讀取。
- 記錄檔專用磁碟:.ldf 必須獨立物理磁碟 (RAID 1/10),確保循序寫入效能。
備份彈性:檔案/檔案組備份
TB 級資料庫無法單一視窗完整備份。檔案組備份允許輪替備份不同群組 (如:週一 PRIMARY,週二 SALES_FG,週三 ARCHIVE_FG),配合差異備份縮短恢復時間目標 (RTO)。
相容性與升級
- SQL 6.5 升級 7.0 需重建資料庫結構 (匯出/匯入或升級精靈)。
- 7.0 為 2000/2005/2008... 現代架構奠基,檔案組、位圖配置、自動管理等核心機制沿用至今。