- SQL Server 2016數據庫應用與開發
- 姜桂洪主編
- 1614字
- 2019-07-01 10:15:09
3.4 文件組的創建
文件組是指將數據庫相關的一組磁盤文件組成的集合。SQL Server 2016在創建數據庫時會自動創建一個主文件組,用戶也可根據自己的需要自定義一個文件組。
1.文件組的類型
為便于分配和管理,可以將數據庫對象和文件一起分成文件組。有以下兩種類型的文件組。
(1)主文件組。主文件組包含主數據文件和任何沒有明確分配給其他文件組的其他文件。系統表的所有頁均分配在主文件組中。
(2)用戶定義文件組。用戶定義文件組是通過在CREATE DATABASE或ALTER DATABASE語句中使用FILEGROUP關鍵字指定的任何文件組。
一個文件不可以是多個文件組的成員。表、索引和大型對象數據可以與指定的文件組相關聯,它們的所有頁將被分配到該文件組。
2.創建文件組的必要性
(1)對于大型數據庫,如果硬件設置上需要多個磁盤驅動器,就可以把特定的對象或文件分配到不同的磁盤上,將數據庫文件組織成用戶文件組。
(2)文件組可以幫助數據庫管理人員執行相應的數據布局以及某些管理任務。例如,在數據庫的備份和恢復過程中,系統管理員可以通過備份和恢復獨立的文件組或文件代替整個數據庫的備份和恢復,這也是需要具有有效備份和恢復策略的大型數據庫的必備選擇。
(3)利用文件組可以在特定的文件中定位特定的對象,從而將頻繁查詢和頻繁修改的文件分離出來,以提高磁盤驅動器的效率,減少磁盤驅動器的爭用。
(4)通過創建用戶文件組,可以將數據文件集合起來,以便于管理、數據分配和放置。
例如,可以分別在3個磁盤驅動器上創建3個次要數據文件(Data1.ndf、Data2.ndf和Data3.ndf),然后將它們分配給文件組filegroup1,之后可以明確地在文件組filegroup1上創建一個表。對表中數據的查詢將分散到3個磁盤上,從而提高了性能。通過使用在RAID(獨立磁盤冗余陣列)條帶集上創建的單個文件也能獲得同樣的性能提高。文件和文件組也可以更方便地在新磁盤上添加新文件。
3.創建用戶文件組
每個數據庫有一個主要文件組,此文件組包含主要數據文件和未放入其他文件組的所有次要文件。可以創建用戶定義的文件組,用于將數據文件集合起來,以便于管理、數據分配和放置。所有系統表都被分配到主要文件組中。用戶定義文件組是用戶首次創建數據庫或以后修改數據庫時明確創建的任何文件組。如果在數據庫中創建對象時沒有指定對象所屬的文件組,對象將被分配給默認文件組。一個數據庫只能將一個文件組指定為默認文件組。
用戶自定義文件組有以下兩種方法。
(1)在SQL Server Management Studio中創建用戶文件組,如為數據庫test01添加了一個名為userdefined01的文件組。具體步驟如下。
①在SQL Server Management Studio中,右擊“對象資源管理器”→“數據庫”子目錄下的test01,從彈出的快捷菜單中選擇“屬性”命令。
②在彈出的“數據庫屬性”對話框中選擇“文件組”選項卡,然后單擊“添加”按鈕。
③在PRIMARY組后添加一個新的文件組,即在新出現的“名稱”單元格下輸入文件組名userdefined01,如圖3-28所示。

圖3-28 添加一個名為userdefined01的文件組
④單擊“確定”按鈕,即可創建一個新的用戶文件組userdefined01。
(2)使用相應的Transact-SQL命令。使用Transact-SQL同樣可以實現創建文件組的功能。在查詢編輯器窗口中輸入下面的Transact-SQL腳本,同樣可以創建一個名為userdefined02的文件組:
USEtest01 GO ALTER DATABASEtest01 ADD FILEGROUP userdefined02 GO
4.設置默認文件組
如果在數據庫中創建對象時,PRIMARY文件組就是默認文件組。若沒有指定對象所屬的文件組,對象將被分配給默認文件組。無論默認文件組如何更改,系統對象和表仍然分配給PRIMARY文件組,而不是新的默認文件組。
默認文件組中的文件必須足夠大,能夠容納未分配給其他文件組的所有新對象。不管何時,一次只能有一個文件組作為默認文件組。
設置默認文件組有以下兩種方法。
(1)在SQL Server Management Studio界面中,參考圖3-28,在“默認值”下的復選框中可以指定默認文件組,然后單擊“確定”按鈕即可。
(2)使用ALTER DATABASE語句更改默認文件組。具體方法可以參考例3-8內容。
【例3-8】 文件和文件組示例。在SQL Server 2016實例上創建了一個數據庫,該數據庫包括一個主數據文件、一個用戶定義文件組和一個日志文件。主數據文件在主文件組中,而用戶定義文件組包含兩個次要數據文件。ALTER DATABASE語句將用戶定義文件組指定為默認文件組。
程序代碼如下:

- Implementing VMware Horizon 7(Second Edition)
- FuelPHP Application Development Blueprints
- 精通API架構:設計、運維與演進
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優化計算
- Python王者歸來
- CouchDB and PHP Web Development Beginner’s Guide
- The DevOps 2.5 Toolkit
- NoSQL數據庫原理
- ServiceNow:Building Powerful Workflows
- 從零開始學C#
- iPhone應用開發從入門到精通
- 零基礎學C語言第2版
- 和孩子一起學編程:用Scratch玩Minecraft我的世界
- Java EE程序設計與開發實踐教程
- SQL Server 2014 Development Essentials