欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL Server中的文件和文件組介紹

 更新時間:2022年05月20日 17:19:25   作者:springsnow  
這篇文章介紹了SQL Server中的文件和文件組,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

文件和文件組簡介

在SQL Server中,數(shù)據(jù)庫在硬盤上的存儲方式和普通文件在Windows中的存儲方式?jīng)]有什么不同,僅僅是幾個文件而已。SQL Server通過管理邏輯上的文件組的方式來管理文件。

SQL Server通過文件組對數(shù)據(jù)文件進(jìn)行管理。我們看到的邏輯數(shù)據(jù)庫由一個或者多個文件組構(gòu)成。

結(jié)構(gòu)圖如下:

文件組管理著磁盤上的文件,文件中存放的就是SQL Server的實(shí)際數(shù)據(jù)。

為什么通過文件組來管理文件

從用戶的角度來說,創(chuàng)建對象時需要指定存儲文件組的只有三種數(shù)據(jù)對象:表,索引和大對象(LOB)。

使用文件組可以隔離用戶對文件的依賴,使得用戶僅僅針對文件組來建立表和索引,而不用關(guān)心實(shí)際磁盤中的文件的情況。當(dāng)文件移動或修改時,由于用戶建立的表和索引是建立在文件組上的,并不依賴具體文件,因此SQL Server可以放心的管理文件。

另外,使用文件組的方式來管理文件,可以使得同一文件組內(nèi)的文件分布在不同的硬盤中,能夠大大提供IO性能。

SQL Server根據(jù)每個文件設(shè)置的初始大小和增量值自動分配新加入的空間,假設(shè)在同一文件A設(shè)置的大小為文件B的兩倍,新增一個數(shù)據(jù)占用3頁,則按比例將2頁分配到文件A中,1頁分配到文件B中。

文件的分類

  • 首要文件:這個文件是必須有的,而且只能有一個。這個文件額外存放了其他文件的位置等信息,擴(kuò)展名為.mdf。
  • 次要文件:可以建任意多個,用于不同目的存放,擴(kuò)展名為.ndf。
  • 日志文件:存放日志,擴(kuò)展名為.ldf。

上面說的集中文件名擴(kuò)展名可以任意修改,推薦使用默認(rèn)的擴(kuò)展名。在SQL Server之后,還新增了文件流數(shù)據(jù)文件和全文索引文件。

通過sys.database_files系統(tǒng)視圖可以查看SQL Server數(shù)據(jù)庫中文件的情況。

SELECT name,type_desc,physical_name,state_desc,size,growth
FROM sys.database_files

結(jié)果如下:

注意type_desc列,首要文件和次要文件都是ROWS,表示存儲的是行(Row)。

如果一個表是存在物理上的多個文件中時,則表的數(shù)據(jù)頁的組織為N(N為具體的幾個文件)個B樹。而不是一個對象為一個B樹。

創(chuàng)建和使用文件組

創(chuàng)建文件或是文件組合一通過在Management Studio或者使用T-SQL語句進(jìn)行。對于一個數(shù)據(jù)庫來說,既可以在創(chuàng)建時增加文件和文件組,也可以向現(xiàn)有的數(shù)據(jù)庫添加文件和文件組。

創(chuàng)建文件組操作:

創(chuàng)建文件操作:

 注意:文件的所屬文件組一旦設(shè)置了就不能夠更改了。

下面給出一個創(chuàng)建索引時,指定存放到文件組的SQL實(shí)例:

--添加索引時,指定存放的文件組
  CREATE NONCLUSTERED INDEX idx_on_other_fileGroue on ProductDemo(UPCode) ON AddFileGroup --紅色部分是主角,指定文件組。
  --如果不指定文件組,則存放到默認(rèn)的文件組當(dāng)中
  CREATE NONCLUSTERED INDEX idx_on_other_fileGroue on ProductDemo(UPCode)

使用多個文件的優(yōu)點(diǎn)與缺點(diǎn)

在大多數(shù)情況下,小型的數(shù)據(jù)庫并不需要創(chuàng)建多個文件來存放數(shù)據(jù)。但是隨著數(shù)據(jù)的增長,單個文件的弊端就會出現(xiàn)。

  • 首先,使用多個文件分布到不同的磁盤分區(qū)(多個硬盤)能夠幾大提高IO性能。
  • 其次,多個文件對于數(shù)據(jù)比較多的數(shù)據(jù)庫來說,備份和恢復(fù)都會方便。
  • 但是,多文件需要占用更多的磁盤空間,因?yàn)槊總€文件中都有自己的一套B樹組織方式和自己的增長空間。當(dāng)然也有自己的碎片。
  • 總體來說,多個文件帶來的優(yōu)點(diǎn)是遠(yuǎn)遠(yuǎn)大于弊端的。

到此這篇關(guān)于SQL Server文件和文件組的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論