標準化建庫腳本可確保環境一致性、效能基準與可維護性。
CREATE DATABASE HappyRelaxDB
ON PRIMARY (
NAME = N'HappyRelaxDB',
FILENAME = N'D:\SQLData\HappyRelaxDB.mdf',
SIZE = 512MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 128MB
)
LOG ON (
NAME = N'HappyRelaxDB_log',
FILENAME = N'D:\SQLLog\HappyRelaxDB_log.ldf',
SIZE = 256MB,
MAXSIZE = 2048GB,
FILEGROWTH = 64MB
);
GO
| 參數 | 建議值 | 理由 |
|---|---|---|
| SIZE | 預估 6-12 個月資料量 | 避免頻繁自動成長造成碎片與效能抖動 |
| FILEGROWTH | 固定 MB (如 128MB),勿用 % | 百分比成長隨檔案增大而變大,不可控 |
| MAXSIZE | 資料檔 UNLIMITED,記錄檔設上限 | 防止記錄檔佔滿磁碟 |
| 檔案路徑 | 資料/記錄分離不同磁碟/陣列 | I/O 隔離,提升併發吞吐 |
| 檔案群 | 依業務模組建立次要檔案群 | 支援檔案群層級備份/還原、分段還原 |
CREATE DATABASE ERP_System
ON PRIMARY (
NAME = ERP_System_Pri, FILENAME = 'F:\Data\ERP_Pri.mdf', SIZE = 1GB, FILEGROWTH = 256MB
),
FILEGROUP FG_Orders (
NAME = ERP_Orders, FILENAME = 'G:\Data\ERP_Orders.ndf', SIZE = 2GB, FILEGROWTH = 512MB
),
FILEGROUP FG_History (
NAME = ERP_History, FILENAME = 'H:\Data\ERP_History.ndf', SIZE = 500MB, FILEGROWTH = 128MB, READ_ONLY = ON
)
LOG ON (
NAME = ERP_System_Log, FILENAME = 'L:\Log\ERP_Log.ldf', SIZE = 1GB, FILEGROWTH = 256MB
);
GO
ALTER DATABASE HappyRelaxDB SET RECOVERY FULL; -- 完整復原模式 ALTER DATABASE HappyRelaxDB SET AUTO_CREATE_STATISTICS ON; ALTER DATABASE HappyRelaxDB SET AUTO_UPDATE_STATISTICS ON; ALTER DATABASE HappyRelaxDB SET READ_COMMITTED_SNAPSHOT ON; -- 啟用 RCSI 減少阻塞 GO
將腳本納入版控,所有環境 (Dev/Test/Staging/Prod) 僅調整路徑與 SIZE 參數,實現基礎設施即代碼。