中の技術日誌
 ホーム / 上へ

SQL:SQL Server 物理配置とファイルグループ

2005/08/06

この文書はSQL Server 2000時点をベースに記述されています。

SQL Serverではテーブルやインデックスといったオブジェクトをファイルグループに配置します。

ファイルグループはファイルを複数管理し、物理オブジェクトと論理オブジェクトをつなぐ役割をします。

たとえばテーブルAに、インデックスA、インデックスBを作成してみましょう。

--データベースを作成する
CREATE DATABASE [test] 
ON (NAME = N'test_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_Data.MDF' , SIZE = 1, FILEGROWTH = 10%)
LOG ON (NAME = N'test_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
COLLATE Japanese_CI_AS
--ファイルグループとファイルを追加する
GO
ALTER DATABASE [test] ADD FILEGROUP [FG1] 
GO
ALTER DATABASE [test] ADD FILE(NAME = N'FG1File1', FILENAME = N'C:\temp\db\FG1File1_Data.NDF' , SIZE = 1, FILEGROWTH = 10%) TO FILEGROUP [FG1]
GO
ALTER DATABASE [test] ADD FILE(NAME = N'FG1File2', FILENAME = N'C:\temp\db\FG1File2_Data.NDF' , SIZE = 1, FILEGROWTH = 10%) TO FILEGROUP [FG1]
GO
ALTER DATABASE [test] ADD FILEGROUP [FG2] 
GO
ALTER DATABASE [test] ADD FILE(NAME = N'FG2File1', FILENAME = N'C:\temp\db\FG2File1_Data.NDF' , SIZE = 1, FILEGROWTH = 10%) TO FILEGROUP [FG2]
GO
ALTER DATABASE [test] ADD FILE(NAME = N'FG2File2', FILENAME = N'C:\temp\db\FG2File2_Data.NDF' , SIZE = 1, FILEGROWTH = 10%) TO FILEGROUP [FG2]
GO

--カレントデータベースを変更する
use [test]
GO

--テーブルを作成する
CREATE TABLE [dbo].[TABLE-A] (
  [key] [int] NOT NULL ,
  [value] [nvarchar] (100) COLLATE Japanese_CI_AS NULL 
) ON [FG1]
GO

--クラスタ化インデックスを作成する
ALTER TABLE [dbo].[TABLE-A] WITH NOCHECK ADD 
  CONSTRAINT [PK_TABLE-A] PRIMARY KEY  CLUSTERED 
  (
    [key]
  )  ON [FG1] 
GO

--通常のインデックスをFG2に作成する
 CREATE  INDEX [IX_TABLE-A] ON [dbo].[TABLE-A]([value]) ON [FG2]
GO

テーブルなどのオブジェクトは1つのファイルグループにしか属せませんが、インデックスは別のファイルグループに所属させることが可能です。

SQL Server 2005ではパーティション機能が追加されるので、若干変わります。
SQL:SQL Server 2005 パーティション機能とは


勉強会: 01/12 大阪#5, 02/03 東京#4 , 02/10 大阪#6 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告