CREATE DATABASE 資料庫名稱
ON
(
NAME = '邏輯檔名_資料',
FILENAME = '實體路徑\檔名.mdf',
SIZE = 初始大小 (KB/MB/GB/TB),
MAXSIZE = 最大大小 | UNLIMITED,
FILEGROWTH = 成長增量 (MB/GB/%)
)
[, ... 次要資料檔 ...]
LOG ON
(
NAME = '邏輯檔名_記錄',
FILENAME = '實體路徑\檔名.ldf',
SIZE = 初始大小,
MAXSIZE = 最大大小 | UNLIMITED,
FILEGROWTH = 成長增量
)
[, ... 多記錄檔 ...];
| 參數 | 說明 | 建議值/注意 |
|---|---|---|
| NAME | 邏輯檔名,供 T-SQL 參考 (如 ALTER DATABASE MODIFY FILE) | 慣用 `DBName_Data`、`DBName_Log`、`DBName_Idx` |
| FILENAME | 實體完整路徑,**目錄必須預先存在**,SQL Server 服務帳號需寫入權限 | 資料/記錄分離不同磁碟/RAID 群組 |
| SIZE | 初始大小,**最小 3MB** (舊版限制),建議依預估首年資料量設定 | 避免頻繁自動成長造成碎片與效能抖動 |
| MAXSIZE | 上限,`UNLIMITED` 受限於磁碟空間 | 生產環境建議設定上限,防止失控佔滿磁碟 |
| FILEGROWTH | 成長增量,**強烈建議固定 MB/GB,勿用 %** | 固定 256MB/512MB/1GB,百分比導致增長越來越大、不可控 |
CREATE DATABASE DevDB;
-- 全部採預設:單一 .mdf + .ldf,預設路徑、預設大小、自動成長 10%
CREATE DATABASE FlexDB
ON
(
NAME = 'FlexDB_Data',
FILENAME = 'D:\SQLData\FlexDB_Data.mdf',
SIZE = 500MB,
MAXSIZE = 50GB,
FILEGROWTH = 256MB
);
-- 記錄檔自動建立於預設記錄路徑
CREATE DATABASE ProdDB
ON PRIMARY
(
NAME = 'ProdDB_Prim',
FILENAME = 'C:\SQLData\ProdDB_Prim.mdf',
SIZE = 1GB,
MAXSIZE = 50GB,
FILEGROWTH = 512MB
),
FILEGROUP FG_Data
(
NAME = 'ProdDB_Data1',
FILENAME = 'D:\SQLData\ProdDB_Data1.ndf',
SIZE = 2GB,
MAXSIZE = 100GB,
FILEGROWTH = 512MB
),
(
NAME = 'ProdDB_Data2',
FILENAME = 'E:\SQLData\ProdDB_Data2.ndf',
SIZE = 2GB,
MAXSIZE = 100GB,
FILEGROWTH = 512MB
)
LOG ON
(
NAME = 'ProdDB_Log1',
FILENAME = 'F:\SQLLog\ProdDB_Log1.ldf',
SIZE = 500MB,
MAXSIZE = 50GB,
FILEGROWTH = 256MB
),
(
NAME = 'ProdDB_Log2',
FILENAME = 'G:\SQLLog\ProdDB_Log2.ldf',
SIZE = 500MB,
MAXSIZE = 50GB,
FILEGROWTH = 256MB
);
關鍵點:
-- 單行註釋
/* 多行
註釋 */
`CREATE DATABASE` 不是「建個庫就好」,而是**儲存架構規劃的起點**。依據預估資料量、I/O 模式、備份策略、高可用架構,正確規劃檔案數量、路徑、大小、成長策略、檔案組歸屬,能為後續效能、維護、擴展奠定堅實基礎。**生產環境務必:資料/記錄分盤、固定成長量、多檔案組隔離業務**。