Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

分割することができる。

「ファイル グループ」による性能の向上

SQL Server 2000では、ファイル グループを使用することでマシン リソースをフル活用して処理を実行する

サポートされていたが、

SQL Server 2005から、より高度な機能として

がサポートされた。

これらの機能も、内部的には「ファイル グループ」のメカニズムを使用している。

簡易ストライピング

「ファイル グループ」を使用して、「データ ファイル」、「トランザクション ログ ファイル」を複数のファイルに分割し、これを独自の「ディスク コントローラ」を持つディスクに配置する。
この場合、クエリは複数ディスクにわたって展開されるため、性能が向上する(読み込み、書き込みともに性能が向上する)。

SQL Server のファイルの配置

※ RAID0のデバイスに1つのファイルを作成した場合と同じ効果がある。

データ ファイルの充填

データ ファイルの拡張

データベースが自動拡張されるように設定されている場合、
「ファイル グループ」内のすべてのファイルが一杯になると、
ファイルが1つずつラウンドロビン方式で自動拡張される。

並列クエリ

並列クエリ

次数

並列クエリの次数に影響を与えるオプション・"しきい値"は、公開されていない。

なお、複数のユーザが、クエリを実行する場合、
プランの次数は、その処理開始時点の各CPUの処理量を考慮する。

参考

構成要素

「ファイル グループ」の構成要素

「ファイル グループ」には、

「プライマリ ファイル グループ」

が含まれる。

「ユーザ定義ファイル グループ」

「ユーザ定義ファイル グループ」は、「CREATE DATABASE」または「ALTER DATABASE」ステートメント内で「FILEGROUP」キーワードを使用して作成できる。

「データ ファイル」の構成要素

「テーブル」・「インデックス」

「テーブル」・「インデックス」は「データ ファイル」に含まれる。

「プライマリ データ ファイル」

「セカンダリ データ ファイル」

「トランザクション ログ ファイル」

「トランザクション ログ ファイル」は「ファイル グループ」に追加できない。

規則と推奨

規則

推奨

作成のポイント

大部分のデータベースは、通常、

正常に機能するが、必要に応じて、

以下の「ファイル グループ」の導入を検討する。

これを既定の「ファイル グループ」に設定する。

この分割方法は、「段階的リストア」や「パーティション分割」で活用できる。

性能向上のポイント

保守性の向上

大きな記憶域を占有する可能性のあるオブジェクトは、
別々の「ファイル グループ」に配置することで「段階的リストア」による
柔軟なデータのバックアップ・リストアなど、メンテナンス操作に関してメリットがある。

次の例では、

DBを作成(CREATE DATABASEステートメント)する際に

作成し、

に設定、

USE master
GO
-- Create the database with the default data filegroup and the log file.
-- Specify the growth increment and the max size for the primary data file.
CREATE DATABASE MyDB -- DBの「プライマリ データ ファイル」を「プライマリ ファイル グループ」に配置
ON PRIMARY
  ( NAME='MyDB_Primary',
   FILE NAME=
      'c:\Program Files\Microsoft SQL Server\MSSQL\data\MyDB_Prm.mdf',
   SIZE=4,
   MAXSIZE=10,
   FILEGROWTH=1),
FILEGROUP MyDB_FG1 -- DBの「セカンダリ データ ファイル」を「ユーザ定義ファイル グループ」に配置
  ( NAME = 'MyDB_FG1_Dat1',
   FILE NAME =
      'c:\Program Files\Microsoft SQL Server\MSSQL\data\MyDB_FG1_1.ndf',
   SIZE = 1MB,
   MAXSIZE=10,
   FILEGROWTH=1),
  ( NAME = 'MyDB_FG1_Dat2',
   FILE NAME =
      'c:\Program Files\Microsoft SQL Server\MSSQL\data\MyDB_FG1_2.ndf',
   SIZE = 1MB,
   MAXSIZE=10,
   FILEGROWTH=1)
LOG ON -- DBの「トランザクション ログ ファイル」を「任意のパス」に配置
  ( NAME='MyDB_log',
   FILE NAME =
      'c:\Program Files\Microsoft SQL Server\MSSQL\data\MyDB.ldf',
   SIZE=1,
   MAXSIZE=10,
   FILEGROWTH=1)
GO
ALTER DATABASE MyDB -- 「ユーザ定義ファイル グループ」をデフォルトの「ファイル グループ」に設定
MODIFY FILEGROUP MyDB_FG1 DEFAULT
GO

-- Create a table in the user-defined filegroup.
-- このテーブルは、「ユーザ定義ファイル グループ」に作成される。
USE MyDB
CREATE TABLE MyTable
  ( cola      int   PRIMARY KEY,
   colb      char(8) )
ON MyDB_FG1
GO

参考


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS