SQL Server 2005 の最大容量仕様

更新 : 2007 年 9 月 15 日

次の表に、Microsoft SQL Server 2005 コンポーネントで定義される各種オブジェクトの最大サイズと最大数を示します。

データベース エンジンのオブジェクト

次の表に、SQL Server 2005 データベースで定義される各種オブジェクト、または Transact-SQL ステートメントで参照される各種オブジェクトの最大サイズと最大数を示します。この表には、SQL Server Windows CE Edition は含まれていません。

SQL Server 2005 データベース エンジンのオブジェクト 最大サイズ/最大数 SQL Server 2005 (32 ビット) 最大サイズ/最大数 SQL Server 2005 (64 ビット)

バッチ サイズ1

65,536 * ネットワーク パケット サイズ

65,536 * ネットワーク パケット サイズ

通常の string 列ごとのバイト数

8,000

8,000

GROUP BY、ORDER BY ごとのバイト数

8,060

8,060

インデックス キーごとのバイト数2

900

900

外部キーごとのバイト数

900

900

主キーごとのバイト数

900

900

行ごとのバイト数8

8,060

8,060

varchar(max)varbinary(max)xmltext、または image 列ごとのバイト数

2^31-1

2^31-1

ntext または nvarchar(max) 列ごとの文字数

2^30-1

2^30-1

テーブルごとのクラスタ化インデックス数

1

1

GROUP BY、ORDER BY の列数

バイト数のみによって制限されます。

バイト数のみによって制限されます。

GROUP BY WITH CUBE または WITH ROLLUP ステートメント内の列または式の数

10

10

インデックス キーごとの列数7

16

16

外部キーごとの列数

16

16

主キーごとの列数

16

16

ベース テーブルごとの列数

1,024

1,024

SELECT ステートメントごとの列数

4,096

4,096

INSERT ステートメントごとの列数

1,024

1,024

クライアントごとの接続数

構成した接続の最大値

構成した接続の最大値

データベース サイズ

524,258 テラバイト

524,258 テラバイト

SQL Server ごとのデータベース数

32,767

32,767

データベースごとのファイル グループ数

32,767

32,767

データベースごとのファイル数

32,767

32,767

ファイル サイズ (データ)

16 テラバイト

16 テラバイト

ファイル サイズ (ログ)

2 テラバイト

2 テラバイト

テーブルごとの外部キー テーブル参照数4

253

253

識別子長 (文字数)

128

128

コンピュータごとのインスタンス数

スタンドアロン サーバー上に 50 個のインスタンス (Workgroup Edition を除くすべての SQL Server 2005 エディション、Workgroup Edition では最大 16 個のインスタンスがサポートされます)。

SQL Server 2005 ではフェールオーバー クラスタ上に 25 個のインスタンスがサポートされます。

スタンドアロン サーバー上に 50 個のインスタンス

フェールオーバー クラスタ上に 25 個のインスタンス

SQL ステートメントが含まれた文字列の長さ (バッチ サイズ)1

65,536 * ネットワーク パケット サイズ

65,536 * ネットワーク パケット サイズ

接続ごとのロック数

サーバーごとの最大ロック数

サーバーごとの最大ロック数

SQL Server インスタンスごとのロック数5

最大 2,147,483,647

メモリのみによって制限されます。

ストアド プロシージャの入れ子レベル数6

32

32

入れ子にしたサブクエリの数

32

32

トリガの入れ子レベル数

32

32

テーブルごとの非クラスタ化インデックス数

249

249

ストアド プロシージャごとのパラメータ数

2,100

2,100

ユーザー定義関数ごとのパラメータ数

2,100

2,100

テーブルごとの参照数

253

253

テーブルごとの行数

使用可能な記憶領域によって制限されます。

使用可能な記憶領域によって制限されます。

データベースごとのテーブル数3

データベース内のオブジェクト数によって制限されます。

データベース内のオブジェクト数によって制限されます。

パーティション テーブルまたはインデックスごとのパーティション数

1,000

1,000

インデックス付けされていない列の統計

2,000

2,000

SELECT ステートメントごとのテーブル数

256

256

テーブルごとのトリガ数3

データベース内のオブジェクト数によって制限されます。

データベース内のオブジェクト数によって制限されます。

テーブルごとの一意なインデックスまたは制約の数

249 (非クラスタ化の場合)、1 (クラスタ化の場合)

249 (非クラスタ化の場合)、1 (クラスタ化の場合)

ユーザー接続数

32,767

32,767

XML インデックス

249

249

1 ネットワーク パケット サイズとは、アプリケーションとリレーショナル データベース エンジンの間の通信に使用される表形式のデータ ストリーム (TDS) パケットのサイズです。既定のパケット サイズは 4 KB であり、network packet size 構成オプションによって制御されます。

2 SQL Server 2005 では、インデックス キーの最大バイト数を 900 以下にする必要があります。最大サイズが合計で 900 を超える可変長列を使用してキーを定義することは可能ですが、900 バイトを超えるデータを持つ行がこれらの列に挿入されていない場合に限られます。SQL Server 2005 では、900 バイトの最大インデックス キー サイズを避けるため、非クラスタ化インデックスに非キー列を含めることができます。詳細については、「付加列インデックス」を参照してください。

3 データベース オブジェクトには、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、トリガ、デフォルト、制約などのオブジェクトが含まれます。1 つのデータベース内のオブジェクトの合計数は 2,147,483,647 以下にする必要があります。

4 1 つのテーブルには FOREIGN KEY 制約を無制限に含めることができますが、推奨最大数は 253 です。SQL Server をホストするハードウェア構成によっては、追加の外部キー制約を指定するとクエリ オプティマイザの処理が遅くなる可能性があります。

5 これは静的ロック割り当てに対する値です。動的ロックの場合は、メモリのみによって制限されます。

6 ストアド プロシージャが 9 つ以上のデータベースにアクセスするか、またはインターリーブ時に 3 つ以上のデータベースにアクセスすると、エラーが返されます。

7 テーブルに 1 つ以上の XML インデックスが含まれている場合は、XML 列がプライマリ XML インデックスのクラスタ化キーに追加されるため、ユーザー テーブルのクラスタ化キーが 15 列までに制限されます。SQL Server 2005 では、最大 16 のキー列制限を避けるため、非クラスタ化インデックスに非キー列を含めることができます。詳細については、「付加列インデックス」を参照してください。

8 SQL Server 2005 では、行オーバーフロー ストレージがサポートされています。これにより、可変長列の行外への移動が可能になります。行外に移動される可変長列のうち、ルートの 24 バイトだけが本体のレコードに格納されます。これにより、実際の行制限は、以前のリリースの SQL Server よりも高い値になります。詳細については、SQL Server 2005 Books Online の「8 KB を超える場合の行オーバーフロー データ」を参照してください。

レプリケーション オブジェクト

次の表に、SQL Server 2005 レプリケーションで定義される各種オブジェクトの最大サイズと最大数を示します。この表には、SQL Server Windows CE Edition は含まれていません。

SQL Server 2005 レプリケーション オブジェクト 最大サイズ/最大数 SQL Server 2005 (32 ビット) 最大サイズ/最大数 SQL Server 2005 (64 ビット)

アーティクル数 (マージ パブリケーション)

256

256

アーティクル数 (スナップショットまたはトランザクション パブリケーション)

32,767

32,767

テーブル内の列数1 (マージ パブリケーション)

246

246

テーブル内の列数2 (SQL Server のスナップショットまたはトランザクション パブリケーション)

1000

1000

テーブル内の列数2 (Oracle のスナップショットまたはトランザクション パブリケーション)

995

995

行フィルタで使用される列のバイト数 (マージ パブリケーション)

1024

1024

行フィルタで使用される列のバイト数 (スナップショットまたはトランザクション パブリケーション)

8000

8000

1 競合の検出で行の追跡を使用する場合 (既定)、ベース テーブルには最大 1,024 列を含めることができます。ただし、最大で 246 列がパブリッシュされるように、列をアーティクルからフィルタ処理する必要があります。列の追跡を使用する場合、ベース テーブルには最大 246 列を含めることができます。追跡レベルの詳細については、「マージ レプリケーションで競合を検出および解決する方法」の「追跡レベル」を参照してください。

2 ベース テーブルには、パブリケーション データベースで許容される最大数 (SQL Server の場合は 1,024) の列を含めることができますが、列数がパブリケーション タイプに対して指定された最大数を超える場合は、アーティクルから列をフィルタ処理する必要があります。

参照

関連項目

SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア
システム構成チェッカーの検査パラメータ

その他の技術情報

SQL Server 2005 コンポーネントのインストール

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2007 年 9 月 15 日

変更内容 :
  • 最大データベース サイズを更新しました。

2006 年 12 月 12 日

変更内容 :
  • ストアド プロシージャのソース テキストにおける、データベース エンジン オブジェクトのバイト数制限を削除。
  • コンピュータごとのインスタンスの数を変更。

2006 年 7 月 17 日

変更内容 :
  • コンピュータごとのインスタンスの数を変更。