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

SQLServer中數(shù)據(jù)庫(kù)文件的存放方式,文件和文件組

 更新時(shí)間:2011年12月27日 00:05:46   作者:  
上次我關(guān)于索引的文章有幾個(gè)園友發(fā)站內(nèi)信問(wèn)我如何將索引和表存儲(chǔ)在不同的硬盤(pán)上。我覺(jué)的需要專(zhuān)門(mén)寫(xiě)一篇文章來(lái)講述一下文件和文件組應(yīng)該更容易理解

簡(jiǎn)介

    在SQL SERVER中,數(shù)據(jù)庫(kù)在硬盤(pán)上的存儲(chǔ)方式和普通文件在Windows中的存儲(chǔ)方式?jīng)]有什么不同,僅僅是幾個(gè)文件而已.SQL SERVER通過(guò)管理邏輯上的文件組的方式來(lái)管理文件.理解文件和文件組的概念對(duì)于更好的配置數(shù)據(jù)庫(kù)來(lái)說(shuō)是最基本的知識(shí)。

理解文件和文件組

    在SQL SERVER中,通過(guò)文件組這個(gè)邏輯對(duì)象對(duì)存放數(shù)據(jù)的文件進(jìn)行管理.

    先來(lái)看一張圖:

       1

    我們看到的邏輯數(shù)據(jù)庫(kù)由一個(gè)或者多個(gè)文件組構(gòu)成

    而文件組管理著磁盤(pán)上的文件.而文件中存放著SQL SERVER的實(shí)際數(shù)據(jù).

為什么通過(guò)文件組來(lái)管理文件

    對(duì)于用戶(hù)角度來(lái)說(shuō),需對(duì)創(chuàng)建的對(duì)象指定存儲(chǔ)的文件組只有三種數(shù)據(jù)對(duì)象:表,索引和大對(duì)象(LOB)

    使用文件組可以隔離用戶(hù)和文件,使得用戶(hù)針對(duì)文件組來(lái)建立表和索引,而不是實(shí)際磁盤(pán)中的文件。當(dāng)文件移動(dòng)或修改時(shí),由于用戶(hù)建立的表和索引是建立在文件組上的,并不依賴(lài)具體文件,這大大加強(qiáng)了可管理性.

    還有一點(diǎn)是,使用文件組來(lái)管理文件可以使得同一文件組內(nèi)的不同文件分布在不同的硬盤(pán)中,極大的提高了IO性能.

    SQL SERVER會(huì)根據(jù)每個(gè)文件設(shè)置的初始大小和增長(zhǎng)量會(huì)自動(dòng)分配新加入的空間,假設(shè)在同一文件組中的文件A設(shè)置的大小為文件B的兩倍,新增一個(gè)數(shù)據(jù)占用三頁(yè)(Page),則按比例將2頁(yè)分配到文件A中,1頁(yè)分配到文件B中.

文件的分類(lèi)

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

    在SQL SERVER 2008之后,還新增了文件流數(shù)據(jù)文件和全文索引文件.

    上述幾種文件名擴(kuò)展名可以隨意修改,但是我推薦使用默認(rèn)的擴(kuò)展名。

    我們可以通過(guò)如下語(yǔ)句查看數(shù)據(jù)庫(kù)中的文件情況:

    2

     還有一點(diǎn)要注意的是,如果一個(gè)表是存在物理上的多個(gè)文件中時(shí),則表的數(shù)據(jù)頁(yè)的組織為N(N為具體的幾個(gè)文件)個(gè)B樹(shù).而不是一個(gè)對(duì)象為一個(gè)B樹(shù).

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

    創(chuàng)建文件或是文件組可以通過(guò)在SSMS中或者使用T-SQL語(yǔ)句進(jìn)行。對(duì)于一個(gè)數(shù)據(jù)庫(kù)來(lái)說(shuō),既可以在創(chuàng)建時(shí)增加文件和文件組,也可以向現(xiàn)有的數(shù)據(jù)庫(kù)添加文件和文件組.這幾種方式大同小異.下面來(lái)看一下通過(guò)SSMS向現(xiàn)有數(shù)據(jù)庫(kù)添加文件和文件組.

    首先創(chuàng)建文件組:

    3

    文件組創(chuàng)建好后就可以向現(xiàn)有文件組中添加文件了:

    4

下面我們就可以通過(guò)語(yǔ)句將創(chuàng)建的表或者索引加入到新的文件組中了:

5

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

    通常情況下,小型的數(shù)據(jù)庫(kù)并不需要?jiǎng)?chuàng)建多個(gè)文件來(lái)分布數(shù)據(jù)。但是隨著數(shù)據(jù)的增長(zhǎng),使用單個(gè)文件的弊端就開(kāi)始顯現(xiàn)。

    首先:使用多個(gè)文件分布數(shù)據(jù)到多個(gè)硬盤(pán)中可以極大的提高IO性能.

    其次:多個(gè)文件對(duì)于數(shù)據(jù)略多的數(shù)據(jù)庫(kù)來(lái)說(shuō),備份和恢復(fù)都會(huì)輕松很多.我碰見(jiàn)過(guò)遇到一個(gè)150G的數(shù)據(jù)庫(kù),手頭卻沒(méi)有這么大的存儲(chǔ)設(shè)備…

    但是,在數(shù)據(jù)庫(kù)的世界中,每一項(xiàng)好處往往伴隨著一個(gè)壞處:

    顯而易見(jiàn),使用多文件需要占用更多的磁盤(pán)空間。這是因?yàn)槊總€(gè)文件中都有自己的一套B樹(shù)組織方式,和自己的增長(zhǎng)空間。當(dāng)然了,還有一套自己的碎片-.-但是在大多數(shù)情況下,多占點(diǎn)磁盤(pán)空間帶來(lái)的弊端要遠(yuǎn)遠(yuǎn)小于多文件帶來(lái)的好處.

總結(jié)

  本文對(duì)SQL SERVER中文件和文件組的概念進(jìn)行了簡(jiǎn)單闡述,并在文中講述了文件和文件組的配置方式。按照業(yè)務(wù)組織好不同的文件組來(lái)分布不同的文件,使得性能的提升,對(duì)于你半夜少接幾個(gè)電話的幫助是灰常大滴:-)

相關(guān)文章

最新評(píng)論