在sql server中,資料庫在硬碟上的儲存方式和普通檔案在windows中的儲存方式沒有什麼不同,僅僅是幾個檔案而已。sql server通過管理邏輯上的檔案組的方式來管理檔案。
sql server通過檔案組對資料檔案進行管理。我們看到的邏輯資料庫由乙個或者多個檔案組構成。
結構圖如下:
檔案組管理著磁碟上的檔案,
檔案中存放的就是sql server的實際資料。
從使用者的角度來說,建立物件時需要指定儲存檔案組的只有三種資料物件:表,索引和大物件(lob)。
使用檔案組可以隔離使用者對檔案的依賴,使得使用者僅僅針對檔案組來建立表和索引,而不用關心實際磁碟中的檔案的情況。當檔案移動或修改時,由於使用者建立的表和索引是建立在檔案組上的,並不依賴具體檔案,因此sql server可以放心的管理檔案。
另外,使用檔案組的方式來管理檔案,可以使得同一檔案組內的檔案分布在不同的硬碟中,能夠大大提供io效能。
sql server根據每個檔案設定的初始大小和增量值自動分配新加入的空間,假設在同一檔案a設定的大小為檔案b的兩倍,新增乙個資料占用3頁,則按比例將2頁分配到檔案a中,1頁分配到檔案b中。
上面說的集中檔名擴充套件名可以任意修改,推薦使用預設的副檔名。在sql server之後,還新增了檔案流資料檔案和全文索引檔案。
通過sys.database_files系統檢視可以檢視sql server資料庫中檔案的情況。
select結果如下:name,type_desc,physical_name,state_desc,size,growth
from
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)
SQL Server 檔案和檔案組
資料庫是資料的倉庫,用於儲存資料,而儲存資料需要媒介,現在的儲存媒介,最常用的是硬碟,土豪一點的伺服器使用固態硬碟 ssd 特殊用途的伺服器使用記憶體。資料庫最常用的儲存檔案是資料檔案和日誌檔案,資料檔案用於儲存資料,由乙個主資料檔案 mdf 和若干個輔助資料檔案 ndf 構成 日誌檔案用於儲存事物...
SQL Server 檔案和檔案組
當資料庫資料過大查詢變慢 空間不夠的時候,我們就需要使用檔案組來擴大資料庫儲存空間,提高查詢效率了。1 檔案和檔案組的含義與關係 每個資料庫有乙個主資料檔案.和若干個從檔案。檔案是資料庫的物理體現。檔案組可以包括分布在多個邏輯分割槽的檔案,實現負載平衡。檔案組允許對檔案進行分組,以便於管理和資料的分...
SQL Server裡的檔案和檔案組
原文 sql server裡的檔案和檔案組 在今天的文章裡,我想談下sql server裡非常重要的話題 sql server如何處理檔案的檔案組。當你用create database命令建立乙個簡單的資料庫時,sql server為你建立2個檔案 資料檔案本身在有且只有乙個主檔案組裡建立。預設情況...