[SQL Server] File Group及びFile追加する方法及びその理由

inno
2013-12-10 02:00 4750 0
データベースのファイルグループ及びデータベースのファイル追加する方法について説明する。

まず、データベースのプロパティを開く。



左の「ページの選択」から「ファイルグループ」を選択し、「追加」ボタンをクリックする。



グループ名を入力する。画面では「FgData」と入力した。
これでグループ名は登録が終わった。
では、グループにファイルを登録しよう。



左の「ページの選択」から「ファイル」を選択し、「追加」ボタンをクリックする。



「論理名」を入力する。画面では「test_data1」を入力した。
「ファイルの種類」は「行データ」を選択。
「ファイルグループ」は作成した「FgData」を選択。



追加するファイルのパスを設定する。
設定が終わったら「OK」ボタンをクリックしてプロパティ画面を閉じる。
これでデータベースのファイルグループとファイルを追加された。

では、追加したファイルグループやファイルはどうやって使うの???

TableやIndexを作成する時にファイルグループを指定して作成するのだ。

Tableを作成する時。

SQLクエリの場合、

CREATE TABLE dbo.TestTable(
Sn int not null,
Data1 varchar(10) not null,
Data2 varchar(10) not null
) ON [FgData]


UIの場合、プロパティから指定ができる。
プロパティが表示されなかったら「F4」KEYを押すと表示される。
もしくは[表示] > [プロパティウィンドウ]をクリックする表示される。



Indexを作成する時。

SQLクエリの場合、

CREATE NONCLUSTERED INDEX [IX_TestTable_Data1] ON [dbo].[TestTable] 
(
[Data1] ASC
) ON [FgData]


UIの場合、



上記のようにデータもしくはINDEXが保存されるファイルグループを指定すると
そのデータはファイルグループに追加したファイルに保存される。

データベースのファイルグループ及びデータベースのファイル追加する理由

基本的にはデータベースを生成するとDataファイル1個、Logファイル1個が作成される。



一般的にはこの構成でも特に問題はない。
FileGroupを追加してDataのみ保存されるグループ、Indexのみ保存されるグループを分けてファイルに保存するとか
データの種類によって分けて保存したりすることができる。
Fileを追加して管理するとデータが分散されI/O速度が速くなり、処理速度が上がる。
だが、ファイルを分けることで効率が確実に上がるわけでもない。
これはサーバーの物理的Disk構成も重要だ。
まず、下記のディスクの構成を見よう。



「ディスク1」にパーティションでD,E,F,Gドライブで分からているが、
それぞれのドライブにデータファイルを設定しても物理的ディスクは1つなので、
I/Oはが多くなり速度は遅くなるのだ。
まぁ。。。パーティションを分けないのがいいと思う。

では、下記のディスク構成を見よう。



物理ディスクが「ディスク1」、「ディスク2」、「ディスク3」がある。

「ディスク1」には「mdf」ファイルを保存。
「ディスク2」には「ndf」ファイルを保存。
「ディスク3」には「ldf」ファイルを保存。

上記のような設定をするとそれぞれディスクからI/Oが発生するため処理速度が速くなるのだ。
もしくは下記のように設定をすることも理想的。

「ディスク1」には「Data」を保存。
「ディスク2」には「Index」を保存。
「ディスク3」には「Log」を保存。

だとしてFile Group及びFileを追加し過ぎると管理的に面倒くさくなるので注意!!

コメント