SQLServer數據庫文件組相關知識筆記


1、數據庫文件組概念

數據庫文件被組織在稱爲“文件組”的邏輯組中。文件組是所創建對象(如表或索引)的目標容器,對象數據將分散在其所在目標文件組的文件中,文件組可以按你要求的方式來控制對象的物理位置。
每個數據庫有一個主文件組。主文件組包含主要數據文件和未放入其他文件組的所有次要文件。用戶可以創建自定義的文件組,用於將數據文件集合起來,這樣以便於後續管理、數據分配和放置。

2、文件組的工作機制

文件組對組內的所有文件都使用按比例填充策略。將數據寫入文件組時,數據庫引擎會根據文件中的可用空間量將一定比例的數據寫入文件組中的每個文件,而不是將所有數據先寫滿第一個文件,然後再寫入下一個文件。例如,如果文件file1有100MB可用空間,文件file2有200 MB可用空間,則從文件f1中分配一個區,從文件f2中分配兩個區,依次類推。這樣,兩個文件幾乎同時填滿。
如果數據庫設置爲自動增長,文件組中的所有文件一滿,數據庫引擎就自動按照循環方式一次擴展一個文件,以容納更多數據。

3、數據庫文件組的作用

改善數據庫的性能:允許跨多個磁盤、多個磁盤控制器或RAID (獨立磁盤冗餘陣列)系統創建數據庫。當對數據進行訪問時,多個讀/寫磁頭可以同時並行地訪問數據。從而加快數據庫操作的速度。
可以在特定的文件組中創建表:根據業務的需要,可以將特定表的所有I/O都定向到一個特定的磁盤。從而提高數據庫的性能。

4、數據庫文件組的設計原則

  • 一個數據庫文件或文件組不能由多個數據庫使用。
  • 一個數據庫文件只能屬於一個文件組。
  • 數據和事務日誌信息不能放在同一個文件或文件組。
  • 事務日誌文件不能屬於任何文件組。
5、數據庫文件組的使用建議
  • 一般情況下數據庫在只有單個數據文件和單個事務日誌文件的情況下性能良好。
  • 如果使用多個數據庫文件的話,應該爲附加的數據庫文件創建第二個文件組,並將其設置爲默認文件組。這樣,主文件將只包含系統表和對象。
  • 要使性能最大化,需要儘可能多的不同的可用本地物理磁盤上創建文件或文件組。將爭奪磁盤空間最激烈的對象放在不同的文件組中
  • 使用文件組將對象放置在特定的物理磁盤上。
  • 將在同一聯接查詢中使用的不同表置於不同的文件組中。由於採用並行磁盤I/O對聯接數據進行搜索,可以改善數據庫性能。
  • 將最常訪問的表和屬於這些表的非聚集索引置於不同的文件組中。如果文件位於不同的物理磁盤上,由於採用並行I/O,可以改善數據庫性能。
  • 不要將事務日誌文件置於其中已有其他文件和文件組的物理磁盤上。




IT技術分享社區


個人博客網站:https://programmerblog.xyz


文章推薦 程序員效率:畫流程圖常用的工具 程序員效率:整理常用的在線筆記軟件 遠程辦公:常用的遠程協助軟件,你都知道嗎? 51單片機程序下載、ISP及串口基礎知識 硬件:斷路器、接觸器、繼電器基礎知識





本文分享自微信公衆號 - IT技術分享社區(gh_a27c0758eb03)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章