D 盤 200G 已滿,新增 F 盤 500G。需在不遷移現有數據前提下,將新數據寫入 F 盤。
-- 1. 添加文件組
ALTER DATABASE [YourDB] ADD FILEGROUP [FG_F_Drive];
-- 2. 在 F 盤添加數據文件
ALTER DATABASE [YourDB]
ADD FILE (
NAME = N'YourDB_F_Data',
FILENAME = N'F:\SQLData\YourDB_F_Data.ndf',
SIZE = 10GB, -- 初始大小
MAXSIZE = 100GB, -- 最大限制
FILEGROWTH = 1GB -- 增長增量
) TO FILEGROUP [FG_F_Drive];
-- 3. 新表指定文件組
CREATE TABLE NewBigTable (
Id BIGINT IDENTITY PRIMARY KEY,
Data VARBINARY(MAX)
) ON [FG_F_Drive]; -- 關鍵:指定文件組
-- 4. 現有大表遷移(可選,需鎖表)
-- CREATE CLUSTERED INDEX ... ON [FG_F_Drive] WITH (DROP_EXISTING=ON);
| 對象 | 說明 |
|---|---|
| 文件組 | 邏輯容器,包含一個或多個物理文件 (.ndf)。表/索引創建時指定文件組。 |
| 主文件組 (PRIMARY) | 默認文件組,包含 .mdf。系統表、未指定文件組的用戶表在此。 |
| .ndf 文件 | 次要數據文件,可放置不同磁盤,實現 I/O 分流。 |
SIZE/FILEGROWTH,避免頻繁自動增長卡頓。SE_MANAGE_VOLUME_NAME,秒級分配大文件。sys.master_files 與磁盤剩餘。BACKUP DATABASE ... FILEGROUP = 'FG_F_Drive') 縮短備份窗口。