SQL SERVER 文件和文件組。本站提示廣大學習愛好者:(SQL SERVER 文件和文件組)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL SERVER 文件和文件組正文
1、文件和文件組的寄義與關系
每一個數據庫有一個主數據文件.和若干個從文件。文件是數據庫的物理表現。 文件組可以包含散布在多個邏輯分區的文件,完成負載均衡。文件組許可對文件停止分組,以便於治理和數據的分派/放置。例如,可以分離在三個硬盤驅動器上創立三個文件(Data1.ndf、Data2.ndf 和 Data3.ndf),並將這三個文件指派到文件組 fgroup1 中。然後,可以明白地在文件組 fgroup1 上創立一個表。對表中數據的查詢將疏散到三個磁盤上,因此機能得以進步。在 RAID(磁盤冗余陣列)條帶集上創立單個文件也能夠取得雷同的機能改良。但是,文件和文件組使您得以在新磁盤上隨意馬虎地添加新文件。別的,假如數據庫跨越單個 Microsoft Windows 文件的最年夜年夜小,則可使用主要數據文件許可數據庫持續增加。
2、文件、文件組在理論運用中罕見的成績
平日情形下我們結構的數據庫都只要兩個文件,mdf文件和ldf文件.然則如許有兩個缺陷:
(一)輕易招致文件過年夜
我們曉得,mdf文件是數據庫文件,如許的話也就意味著跟著數據庫的增年夜mdf就會響應的增年夜,明顯在如今的運用中數據收縮是太罕見的工作了,當你的運用變年夜後,mdf文件也會變年夜,但是windows對文件的年夜小是有請求的,如許的話很輕易招致mdf文件到達windows所許可的文件年夜小的界線(因而數據庫就瓦解了)。
(二)沒有益用到磁盤陣列
年夜型的辦事器很多多少都有磁盤陣列,你可以把磁盤陣列簡略的假象成n個一塊遷移轉變的磁盤,磁盤陣列的設計是願望經由過程多個磁盤的串連來獲得更年夜的讀寫效力.然則假如你的數據庫只要一個mdf文件(ldf文件臨時不斟酌),那末你老是只可以或許應用這個磁盤陣列外面的一個磁盤罷了.那樣的話昂貴的磁盤陣列的效力就由並聯釀成串連了.試想假如我們可以或許讓mdf疏散成多個文件,好比說磁盤陣列上的每一個磁盤中都分派一個文件,然後把mdf中的數據疏散到各個文件中,我在讀取的時刻就是串連的讀取了,如許就充足的應用了磁盤陣的存取效能.
這兩個成績平凡我們沒有碰到過(前提不具有),然則做年夜型的辦事開辟的時刻這簡直是致命的.
3、查詢文件組和文件語句
這在2005下,運轉
SELECT df.[name], df.physical_name, df.[size], df.growth, f.[name][filegroup], f.is_default FROM sys.database_files df JOIN sys.filegroups f ON df.data_space_id = f.data_space_id
4、MSDN官方說明
懂得文件和文件組每一個 SQL Server 數據庫至多具有兩個操作體系文件:一個數據文件和一個日記文件。數據文件包括數據和對象,例如表、索引、存儲進程和視圖。日記文件包括恢單數據庫中的一切事務所需的信息。為了便於分派和治理,可以將數據文件聚集起來,放到文件組中。
數據庫文件SQL Server 數據庫具有三品種型的文件,以下表所示:
重要
重要數據文件包括數據庫的啟動信息,並指向數據庫中的其他文件。用戶數據和對象可存儲在此文件中,也能夠存儲在主要數據文件中。每一個數據庫有一個重要數據文件。重要數據文件的建議文件擴大名是 .mdf。
主要
主要數據文件是可選的,由用戶界說並存儲用戶數據。經由過程將每一個文件放在分歧的磁盤驅動器上,主要文件可用於將數據疏散到多個磁盤上。別的,假如數據庫跨越了單個 Windows 文件的最年夜年夜小,可使用主要數據文件,如許數據庫就可以持續增加。
主要數據文件的建議文件擴大名是 .ndf。
事務日記
事務日記文件保留用於恢單數據庫的日記信息。每一個數據庫必需至多有一個日記文件。事務日記的建議文件擴大名是 .ldf。
例如,可以創立一個簡略的數據庫 Sales,個中包含一個包括一切數據和對象的重要文件和一個包括事務日記信息的日記文件。也能夠創立一個更龐雜的數據庫 Orders,個中包含一個重要文件和五個主要文件。數據庫中的數據和對象疏散在一切六個文件中,而四個日記文件包括事務日記信息。
默許情形下,數據和事務日記被放在統一個驅動器上的統一個途徑下。這是為處置單磁盤體系而采取的辦法。然則,在臨盆情況中,這能夠不是最好的辦法。建議將數據和日記文件放在分歧的磁盤上。
文件組每一個數據庫有一個重要文件組。此文件組包括重要數據文件和未放入其他文件組的一切主要文件。可以創立用戶界說的文件組,用於將數據文件聚集起來,以便於治理、數據分派和放置。
例如,可以分離在三個磁盤驅動器上創立三個文件 Data1.ndf、Data2.ndf 和 Data3.ndf,然後將它們分派給文件組 fgroup1。然後,可以明白地在文件組 fgroup1 上創立一個表。對表中數據的查詢將疏散到三個磁盤上,從而進步了機能。經由過程應用在 RAID(自力磁盤冗余陣列)條帶集上創立的單個文件也能取得異樣的機能進步。然則,文件和文件組使您可以或許輕松地在新磁盤上添加新文件。
下表列出了存儲在文件組中的一切數據文件。
重要
包括重要文件的文件組。一切體系表都被分派到重要文件組中。
用戶界說
用戶初次創立數據庫或今後修正數據庫時明白創立的任何文件組。
假如在數據庫中創立對象時沒有指定對象所屬的文件組,對象將被分派給默許文件組。不論什麼時候,只能將一個文件組指定為默許文件組。默許文件組中的文件必需足夠年夜,可以或許包容未分派給其他文件組的一切新對象。
PRIMARY 文件組是默許文件組,除非應用 ALTER DATABASE 語句停止了更改。但體系對象和表依然分派給 PRIMARY 文件組,而不是新的默許文件組。