數據庫文件被組織在稱為“文件組”的邏輯組中。文件組是所創建對象(如表或索引)的目標容器,對象數據將分散在其所在目標文件組的文件中,文件組可以按你要求的方式來控制對象的物理位置。
每個數據庫有一個主文件組。主文件組包含主要數據文件和未放入其他文件組的所有次要文件。用戶可以創建自定義的文件組,用于將數據文件集合起來,這樣以便于后續管理、數據分配和放置。
2、文件組的工作機制
文件組對組內的所有文件都使用按比例填充策略。將數據寫入文件組時,數據庫引擎會根據文件中的可用空間量將一定比例的數據寫入文件組中的每個文件,而不是將所有數據先寫滿第一個文件,然后再寫入下一個文件。例如,如果文件file1有100MB可用空間,文件file2有200 MB可用空間,則從文件f1中分配一個區,從文件f2中分配兩個區,依次類推。這樣,兩個文件幾乎同時填滿。
如果數據庫設置為自動增長,文件組中的所有文件一滿,數據庫引擎就自動按照循環方式一次擴展一個文件,以容納更多數據。
3、數據庫文件組的作用
改善數據庫的性能:允許跨多個磁盤、多個磁盤控制器或RAID (獨立磁盤冗余陣列)系統創建數據庫。當對數據進行訪問時,多個讀/寫磁頭可以同時并行地訪問數據。從而加快數據庫操作的速度。
可以在特定的文件組中創建表:根據業務的需要,可以將特定表的所有I/O都定向到一個特定的磁盤。從而提高數據庫的性能。
4、數據庫文件組的設計原則
- 一個數據庫文件或文件組不能由多個數據庫使用。
- 一個數據庫文件只能屬于一個文件組。
- 數據和事務日志信息不能放在同一個文件或文件組。
- 事務日志文件不能屬于任何文件組。
5、數據庫文件組的使用建議
- 一般情況下數據庫在只有單個數據文件和單個事務日志文件的情況下性能良好。
- 如果使用多個數據庫文件的話,應該為附加的數據庫文件創建第二個文件組,并將其設置為默認文件組。這樣,主文件將只包含系統表和對象。
- 要使性能最大化,需要盡可能多的不同的可用本地物理磁盤上創建文件或文件組。將爭奪磁盤空間最激烈的對象放在不同的文件組中
- 使用文件組將對象放置在特定的物理磁盤上。
- 將在同一鏈接查詢中使用的不同表置于不同的文件組中。由于采用并行磁盤I/O對連接數據進行搜索,可以改善數據庫性能。
- 將最常訪問的表和屬于這些表的非聚集索引置于不同的文件組中。如果文件位于不同的物理磁盤上,由于采用并行I/O,可以改善數據庫性能。
- 不要將事務日志文件置于其中已有其他文件和文件組的物理磁盤上。
原文地址:https://www.toutiao.com/a6936156945543971342/