首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 進階實戰(一):資料庫建立完整語法與檔案規劃實戰

     編輯:關於SqlServer

CREATE DATABASE 完整語法

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,百分比導致增長越來越大、不可控

三種常見建庫模式實戰

1. 極簡模式 (開發/測試/小型應用)

CREATE DATABASE DevDB;
-- 全部採預設:單一 .mdf + .ldf,預設路徑、預設大小、自動成長 10%

2. 彈性模式 (指定資料檔,記錄檔用預設)

CREATE DATABASE FlexDB
ON
(
    NAME = 'FlexDB_Data',
    FILENAME = 'D:\SQLData\FlexDB_Data.mdf',
    SIZE = 500MB,
    MAXSIZE = 50GB,
    FILEGROWTH = 256MB
);
-- 記錄檔自動建立於預設記錄路徑

3. 生產級完整規劃 (多資料檔 + 多記錄檔 + 檔案組)

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
);

關鍵點:

  • 資料檔分散於 C/D/E 三顆實體磁碟/RAID,**I/O 平行化**。
  • 記錄檔獨立於 F/G 兩顆磁碟,**寫入順序 I/O 不干擾資料隨機讀取**。
  • 次要資料檔 `.ndf` 歸屬 `FG_Data` 檔案組,大表建立時 `ON FG_Data` 即可自動條帶分佈。

檔案組規劃最佳實務

  1. PRIMARY:僅存系統表、小型查詢表、元資料。
  2. 使用者檔案組:按業務/存取模式分組 (如 `FG_Orders`、`FG_Archive`、`FG_Indexes`)。
  3. 預設檔案組:`ALTER DATABASE ProdDB MODIFY FILEGROUP FG_Data DEFAULT;` 新建表預設落入此組,系統表仍留 PRIMARY。
  4. 唯讀/歸檔檔案組:`ALTER DATABASE ProdDB MODIFY FILEGROUP FG_Archive READ_ONLY;` 歷史資料唯讀,備份可跳過、壓縮只讀檔案組。

註釋語法

-- 單行註釋
/* 多行
   註釋 */

小結

`CREATE DATABASE` 不是「建個庫就好」,而是**儲存架構規劃的起點**。依據預估資料量、I/O 模式、備份策略、高可用架構,正確規劃檔案數量、路徑、大小、成長策略、檔案組歸屬,能為後續效能、維護、擴展奠定堅實基礎。**生產環境務必:資料/記錄分盤、固定成長量、多檔案組隔離業務**。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved