SQL Server 檔案和檔案組

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   使用   檔案   資料   

檔案和檔案組簡介

  在SQL Server中,資料庫在硬碟上的儲存方式和普通檔案在Windows中的儲存方式沒有什麼不同,僅僅是幾個檔案而已。SQL Server通過管理邏輯上的檔案組的方式來管理檔案。

  SQL Server通過檔案組對資料檔案進行管理。我們看到的邏輯資料庫由一個或者多個檔案組構成。

  結構圖如下:

    

    檔案組管理著磁碟上的檔案,檔案中存放的就是SQL Server的實際資料。

為什麼通過檔案組來管理檔案

  從使用者的角度來說,建立對象時需要指定隱藏檔組的只有三種資料對象:表,索引和大對象(LOB)。

  使用檔案組可以隔離使用者對檔案的依賴,使得使用者僅僅針對檔案組來建立表和索引,而不用關心實際磁碟中的檔案的情況。當檔案移動或修改時,由於使用者建立的表和索引是建立在檔案組上的,並不依賴具體檔案,因此SQL Server可以放心的管理檔案。

  另外,使用檔案組的方式來管理檔案,可以使得同一檔案組內的檔案分布在不同的硬碟中,能夠大大提供IO效能。

  SQL Server根據每個檔案設定的初始大小和增量值自動分配新加入的空間,假設在同一檔案A設定的大小為檔案B的兩倍,新增一個資料佔用3頁,則按比例將2頁分配到檔案A中,1頁分配到檔案B中。

檔案的分類
  •   首要檔案:這個檔案是必須有的,而且只能有一個。這個檔案額外存放了其他檔案的位置等資訊,副檔名為.mdf。
  •   次要檔案:可以建任意多個,用於不同目的存放,副檔名為.ndf。
  •   記錄檔:存放日誌,副檔名為.ldf。

  上面說的集中檔案名稱副檔名可以任意修改,推薦使用預設的副檔名。在SQL Server之後,還新增了檔案流資料檔案和全文索引檔案。

  通過sys.database_files系統檢視表可以查看SQL Server資料庫中檔案的情況。

SELECT name,type_desc,physical_name,state_desc,size,growthFROM sys.database_files

  結果如下:

  

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

  如果一個表是存在物理上的多個檔案中時,則表的資料頁的組織為N(N為具體的幾個檔案)個B樹。而不是一個對象為一個B樹。

建立和使用檔案組

  建立檔案或是檔案組合一通過在Management Studio或者使用T-SQL語句進行。對於一個資料庫來說,既可以在建立時增加檔案和檔案組,也可以向現有的資料庫添加檔案和檔案組。

  建立檔案組操作:

  

  建立檔案操作:

  

   注意:檔案的所屬檔案組一旦設定了就不能夠更改了。

  下面給出一個建立索引時,指定存放到檔案組的SQL執行個體:

  --添加索引時,指定存放的檔案組  CREATE NONCLUSTERED INDEX idx_on_other_fileGroue on ProductDemo(UPCode) ON AddFileGroup --紅色部分是主角,指定檔案組。  --如果不指定檔案組,則存放到預設的檔案組當中  CREATE NONCLUSTERED INDEX idx_on_other_fileGroue on ProductDemo(UPCode)

 

使用多個檔案的優點與缺點

  在大多數情況下,小型的資料庫並不需要建立多個檔案來存放資料。但是隨著資料的增長,單個檔案的弊端就會出現。

  •   首先,使用多個檔案分布到不同的磁碟分割(多個硬碟)能夠幾大提高IO效能。
  •   其次,多個檔案對於資料比較多的資料庫來說,備份和恢複都會方便。
  •   但是,多檔案需要佔用更多的磁碟空間,因為每個檔案中都有自己的一套B樹組織方式和自己的增長空間。當然也有自己的片段。
  •   總體來說,多個檔案帶來的優點是遠遠大於弊端的。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.