SQL Server の最大容量仕様Maximum Capacity Specifications for SQL Server

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

次の各表に、 SQL ServerSQL Server コンポーネントで定義される各種オブジェクトの最大サイズと最大数を示します。The following tables specify maximum sizes and numbers of various objects defined in SQL ServerSQL Server components. SQL ServerSQL Server テクノロジの表に移動するには、それぞれのリンクをクリックしてください。To navigate to the table for a SQL ServerSQL Server technology, click on its link:

SQL Server データベース エンジン オブジェクトSQL Server Database Engine Objects

SQL Server ユーティリティ オブジェクトSQL Server Utility Objects

SQL Server データ層アプリケーション オブジェクトSQL Server Data-tier Application Objects

SQL Server レプリケーション オブジェクトSQL Server Replication Objects

データベース エンジンDatabase Engine オブジェクトデータベース エンジンDatabase Engine Objects

SQL ServerSQL Server データベースで定義される各種オブジェクト、または Transact-SQLTransact-SQL ステートメントで参照される各種オブジェクトの最大サイズと最大数。Maximum sizes and numbers of various objects defined in SQL ServerSQL Server databases or referenced in Transact-SQLTransact-SQL statements.

SQL ServerSQL Server データベース エンジンDatabase Engine オブジェクト (object)データベース エンジンDatabase Engine object 最大サイズ/最大数 ( SQL ServerSQL Server 64 ビットの場合)Maximum sizes/numbers SQL ServerSQL Server (64-bit) 追加情報Additional Information
[バッチ サイズ]Batch size 65,536 * ネットワーク パケット サイズ65,536 * Network Packet Size ネットワーク パケット サイズとは、アプリケーションとリレーショナル データベース エンジンDatabase Engineの間の通信に使用される表形式データ ストリーム (TDS) パケットのサイズです。Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational データベース エンジンDatabase Engine. 既定のパケット サイズは 4 KB であり、network packet size 構成オプションによって制御されます。The default packet size is 4 KB, and is controlled by the network packet size configuration option.
通常の string 列ごとのバイト数Bytes per short string column 8,0008,000
GROUP BY、ORDER BY ごとのバイト数Bytes per GROUP BY, ORDER BY 8,0608,060
インデックス キーごとのバイト数Bytes per index key 1 つのクラスター化インデックスにつき 900 バイト。900 bytes for a clustered index. 1 つの非クラスター化インデックスにつき 1,700 バイト。1,700 for a nonclustered index. SQL ServerSQL Serverでは、クラスター化インデックス キーの最大バイト数を 900 以下にする必要があります。The maximum number of bytes in a clustered index key cannot exceed 900 in SQL ServerSQL Server. 非クラスター化インデックス キーの場合は、最大 1,700 バイト。For a nonclustered index key, the maximum is 1700 bytes.

最大サイズを合計すると制限を超える可変長列を使用して、キーを定義できます。You can define a key using variable-length columns whose maximum sizes add up to more than the limit. ただし、これらの列のデータのサイズ合計が、制限を超えることはできません。However, the combined sizes of the data in those columns can never exceed the limit.

非クラスター化インデックスには、追加の非キー列を含めることができ、それらはキーのサイズ制限にはカウントされません。In a nonclustered index, you can include extra non-key columns, and they do not count against the size limit of the key. 非キー列は、一部のクエリ パフォーマンスの向上に役立つ場合があります。The non-key columns might help some queries perform better.
メモリ最適化テーブルのインデックス キーごとのバイト数Bytes per index key for memory-optimized tables 1 つの非クラスター化インデックスにつき 2,500 バイト。2500 bytes for a nonclustered index. すべてのインデックス キーが行内に収まる限り、ハッシュ インデックスに制限はなし。No limit for a hash index, as long as all index keys fit in-row. メモリ最適化テーブルでは、非クラスター化インデックスは、宣言された最大サイズが 2,500 バイトを超えるキー列を持つことはできません。On a memory-optimized table, a nonclustered index cannot have key columns whose maximum declared sizes exceed 2500 bytes. キー列の実際のデータが、宣言されている最大サイズよりも小さいかどうかには関係ありません。It is irrelevant whether the actual data in the key columns would be shorter than the maximum declared sizes.

ハッシュ インデックス キーの場合、サイズにハード リミットはありません。For a hash index key there is no hard limit on size.

メモリ最適化テーブルのインデックスの場合、すべてのインデックスがすべての列を本質的にカバーするため、付加列の概念はありません。For indexes on memory-optimized tables, there is no concept of included columns, since all indexes inherently cover of all columns.

メモリ最適化テーブルの場合、行のサイズが 8,060 バイトでも、一部の可変長列をこの 8,060 バイトの外側に物理的に保存できます。For a memory-optimized table, even though the row size is 8060 bytes, some variable-length columns can be physically stored outside those 8060 bytes. ただし、テーブルのすべてのインデックスのすべてのキー列の宣言された最大サイズと、テーブル内の追加の固定長列のすべてが、8,060 バイトに収まる必要があります。However, the maximum declared sizes of all key columns for all indexes on a table, plus any additional fixed-length columns in the table, must fit in the 8060 bytes.
外部キーごとのバイト数Bytes per foreign key 900900
主キーごとのバイト数Bytes per primary key 900900
行ごとのバイト数Bytes per row 8,0608,060 SQL ServerSQL Server 行オーバーフロー ストレージがサポートされています。これにより、可変長列の行外への移動が可能になります。supports row-overflow storage which enables variable length columns to be pushed off-row. 行外に移動される可変長列のうち、ルートの 24 バイトだけが本体のレコードに格納されます。これにより、実際の行制限は、以前のリリースの SQL ServerSQL Serverよりも大きい値になります。Only a 24-byte root is stored in the main record for variable length columns pushed out of row; because of this, the effective row limit is higher than in previous releases of SQL ServerSQL Server. 詳細については、 SQL ServerSQL Server オンライン ブックの「8 KB を超える場合の行オーバーフロー データ」を参照してください。For more information, see the "Row-Overflow Data Exceeding 8 KB" topic in SQL ServerSQL Server Books Online.
メモリ最適化テーブル内の行ごとのバイト数Bytes per row in memory-optimized tables 8,0608,060 SQL Server 2016 (13.x)SQL Server 2016 (13.x) から、メモリ最適化テーブルで行外ストレージがサポートされます。Starting SQL Server 2016 (13.x)SQL Server 2016 (13.x) memory-optimized tables support off-row storage. テーブル内のすべての列の最大サイズが 8,060 バイトを超える場合、可変長列が行外に押し出されます。コンパイル時の決定です。Variable length columns are pushed off-row if the maximum sizes for all the columns in the table exceeds 8060 bytes; this is a compile-time decision. 行外に保存された列用に、8 バイトの参照だけが行内に保存されます。Only an 8-byte reference is stored in-row for columns stored off-row. 詳細については、「 メモリ最適化テーブルのテーブルと行のサイズ」を参照してください。For more information, see Table and Row Size in Memory-Optimized Tables.
ストアド プロシージャのソース テキスト内のバイト数Bytes in source text of a stored procedure バッチ サイズまたは 250 MB のいずれか小さい方Lesser of batch size or 250 MB
varchar (max)varbinary (max)xmlテキスト、または イメージ あたりのバイト数Bytes per varchar(max), varbinary(max), xml, text, or image column 2^31-12^31-1
ntext または nvarchar (max) あたりの文字数Characters per ntext or nvarchar(max) column 2^30-12^30-1
テーブルごとのクラスター化インデックス数Clustered indexes per table 11
GROUP BY、ORDER BY の列数Columns in GROUP BY, ORDER BY バイト数のみによって制限されます。Limited only by number of bytes
GROUP BY WITH CUBE または WITH ROLLUP ステートメント内の列または式の数Columns or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement 1010
インデックス キーごとの列数Columns per index key 3232 テーブルに 1 つ以上の XML インデックスが含まれている場合は、XML 列がプライマリ XML インデックスのクラスター化キーに追加されるため、ユーザー テーブルのクラスター化キーが 31 列までに制限されます。If the table contains one or more XML indexes, the clustering key of the user table is limited to 31 columns because the XML column is added to the clustering key of the primary XML index. SQL ServerSQL Serverでは、キー列数が最大キー列数制限の 32 を越えないように、非クラスター化インデックスに非キー列を含めることができます。In SQL ServerSQL Server, you can include nonkey columns in a nonclustered index to avoid the limitation of a maximum of 32 key columns. 詳細については、「 付加列インデックスの作成」を参照してください。For more information, see Create Indexes with Included Columns.
外部キーごとの列数Columns per foreign key 3232
主キーごとの列数Columns per primary key 3232
幅の狭いテーブルごとの列数Columns per nonwide table 1,0241,024
幅の広いテーブルごとの列数Columns per wide table 30,00030,000
SELECT ステートメントごとの列数Columns per SELECT statement 4,0964,096
INSERT ステートメントごとの列数Columns per INSERT statement 4,0964,096
クライアントごとの接続数Connections per client 構成した接続の最大値Maximum value of configured connections
データベース サイズDatabase size 524,272 テラバイト524,272 terabytes
インスタンスごとのデータベース数 SQL ServerSQL ServerDatabases per instance of SQL ServerSQL Server 32,76732,767
データベースごとのファイル グループ数Filegroups per database 32,76732,767
メモリ最適化データに対応する、データベースごとのファイル グループFilegroups per database for memory-optimized data 11
データベースごとのファイル数Files per database 32,76732,767
ファイル サイズ (データ)File size (data) 16 テラバイト16 terabytes
ファイル サイズ (ログ)File size (log) 2 テラバイト2 terabytes
データベースごとのメモリ最適化データに対応するデータ ファイルData files for memory-optimized data per database SQL Server 2014 (12.x)SQL Server 2014 (12.x) では 4,096。4,096 in SQL Server 2014 (12.x)SQL Server 2014 (12.x). それより後のバージョンの SQL ServerSQL Server には、このような厳密な制限はありません。Later versions of SQL ServerSQL Server do not impose such a strict limit.
メモリ最適化データに対応するデータ ファイルごとのデルタ ファイルDelta file per data file for memory-optimized data 11
テーブルごとの外部キー テーブル参照数Foreign key table references per table 発信 = 253。Outgoing = 253. 着信 = 10,000。Incoming = 10,000. 制限については、「 Create Foreign Key Relationships」を参照してください。For restrictions, see Create Foreign Key Relationships.
識別子長 (文字数)Identifier length (in characters) 128128
コンピューターごとのインスタンス数Instances per computer スタンドアロン サーバー上に 50 個のインスタンス。50 instances on a stand-alone server.

SQL ServerSQL Server では、クラスター インストールのストレージ オプションとして共有クラスター ディスクを使用する場合、フェールオーバー クラスター上に 25 個のインスタンスがサポートされます。クラスター インストールのストレージ オプションとして SMB ファイル共有を選択する場合は、フェールオーバー クラスター上に 50 個のインスタンスがサポートされます。25 instances on a failover cluster when using a shared cluster disk as the stored option for you cluster installation SQL ServerSQL Server supports 50 instances on a failover cluster if you choose SMB file shares as the storage option for your cluster installation.
メモリ最適化テーブルごとのインデックスIndexes per memory-optimized table SQL Server 2017 (14.x)SQL Server 2017 (14.x) 以降および Azure SQL データベースAzure SQL Database では 999999 starting SQL Server 2017 (14.x)SQL Server 2017 (14.x) and in Azure SQL データベースAzure SQL Database
SQL Server 2014 (12.x)SQL Server 2014 (12.x) および SQL Server 2016 (13.x)SQL Server 2016 (13.x) では 88 in SQL Server 2014 (12.x)SQL Server 2014 (12.x) and SQL Server 2016 (13.x)SQL Server 2016 (13.x)
SQL ステートメントが含まれた文字列の長さ (バッチ サイズ)Length of a string containing SQL statements (batch size) 65,536 * ネットワーク パケット サイズ65,536 * Network packet size ネットワーク パケット サイズとは、アプリケーションとリレーショナル データベース エンジンDatabase Engineの間の通信に使用される表形式データ ストリーム (TDS) パケットのサイズです。Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational データベース エンジンDatabase Engine. 既定のパケット サイズは 4 KB であり、network packet size 構成オプションによって制御されます。The default packet size is 4 KB, and is controlled by the network packet size configuration option.
接続ごとのロック数Locks per connection サーバーごとの最大ロック数Maximum locks per server
のインスタンスごとのロック数 SQL ServerSQL ServerLocks per instance of SQL ServerSQL Server メモリのみによって制限されます。Limited only by memory これは静的ロック割り当てに対する値です。This value is for static lock allocation. 動的ロックの場合は、メモリのみによって制限されます。Dynamic locks are limited only by memory.
ストアド プロシージャの入れ子レベル数Nested stored procedure levels 3232 ストアド プロシージャが 65 個以上のデータベースにアクセスするか、またはインターリーブ時に 3 つ以上のデータベースにアクセスすると、エラーが返されます。If a stored procedure accesses more than 64 databases, or more than 2 databases in interleaving, you will receive an error.
入れ子にしたサブクエリの数Nested subqueries 3232
トリガーの入れ子レベル数Nested trigger levels 3232
テーブルごとの非クラスター化インデックス数Nonclustered indexes per table 999999
次のいずれかが存在する場合の、GROUP BY 句に含まれる個別の式の数:CUBE、ROLLUP、GROUPING SETS、WITH CUBE、WITH ROLLUPNumber of distinct expressions in the GROUP BY clause when any of the following are present: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP 3232
GROUP BY 句内の演算子によって生成されるグループ化セットの数Number of grouping sets generated by operators in the GROUP BY clause 4,0964,096
ストアド プロシージャごとのパラメーター数Parameters per stored procedure 2,1002,100
ユーザー定義関数ごとのパラメーター数Parameters per user-defined function 2,1002,100
テーブルごとの参照数REFERENCES per table 253253
テーブルごとの行数Rows per table 使用可能な記憶領域によって制限されます。Limited by available storage
データベースごとのテーブル数Tables per database データベース内のオブジェクト数によって制限されます。Limited by number of objects in a database データベース オブジェクトには、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、トリガー、ルール、デフォルト、制約などのオブジェクトが含まれます。Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. 1 つのデータベース内のオブジェクトの合計数は 2,147,483,647 以下にする必要があります。The sum of the number of all objects in a database cannot exceed 2,147,483,647.
パーティション テーブルまたはインデックスごとのパーティション数Partitions per partitioned table or index 15,00015,000
インデックス付けされていない列の統計Statistics on non-indexed columns 30,00030,000
SELECT ステートメントごとのテーブル数Tables per SELECT statement 使用可能なリソースのみによって制限されます。Limited only by available resources
テーブルごとのトリガー数Triggers per table データベース内のオブジェクト数によって制限されます。Limited by number of objects in a database データベース オブジェクトには、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、トリガー、ルール、デフォルト、制約などのオブジェクトが含まれます。Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. 1 つのデータベース内のオブジェクトの合計数は 2,147,483,647 以下にする必要があります。The sum of the number of all objects in a database cannot exceed 2,147,483,647.
UPDATE ステートメント (幅の広いテーブル) ごとの列数Columns per UPDATE statement (Wide Tables) 40964096
ユーザー接続数User connections 32,76732,767
XML インデックス数XML indexes 249249

SQL ServerSQL Server ユーティリティ オブジェクトSQL ServerSQL Server Utility Objects

SQL ServerSQL Server ユーティリティでテストされた各種オブジェクトの最大サイズと最大数。Maximum sizes and numbers of various objects that were tested in the SQL ServerSQL Server Utility.

SQL ServerSQL Server ユーティリティ オブジェクトUtility object 最大サイズ/最大数 ( SQL ServerSQL Server 64 ビットの場合)Maximum sizes/numbers SQL ServerSQL Server (64-bit)
SQL ServerSQL Server ユーティリティごとのコンピューター数 (物理コンピューターまたは仮想マシン)Computers (physical computers or virtual machines) per SQL ServerSQL Server Utility 100100
コンピューターごとの SQL ServerSQL Server のインスタンス数Instances of SQL ServerSQL Server per computer 55
SQL ServerSQL Server ユーティリティごとの SQL ServerSQL Server のインスタンス総数Total number of instances of SQL ServerSQL Server per SQL ServerSQL Server Utility 200*200*
SQL ServerSQL Serverのインスタンス (データ層アプリケーションを含む) ごとのユーザー データベース数User databases per instance of SQL ServerSQL Server, including data-tier applications 5050
SQL ServerSQL Server ユーティリティごとのユーザー データベース総数Total number of user databases per SQL ServerSQL Server Utility 1,0001,000
データベースごとのファイル グループ数File groups per database 11
ファイル グループごとのデータ ファイル数Data files per file group 11
データベースごとのログ ファイル数Log files per database 11
コンピューターごとのボリューム数Volumes per computer 33

* SQL ServerSQL Server ユーティリティでサポートされる SQL ServerSQL Server のマネージド インスタンスの最大数は、サーバーのハードウェア構成によって異なる場合があります。*The maximum number of managed instances of SQL ServerSQL Server supported by SQL ServerSQL Server Utility may vary based on the hardware configuration of the server. 概要情報については、「 SQL Server ユーティリティの機能とタスク」を参照してください。For getting started information, see SQL Server Utility Features and Tasks. SQL ServerSQL Server ユーティリティ コントロール ポイントは、 SQL Server 2017SQL Server 2017のすべてのエディションで使用できるわけではありません。Utility control point is not available in every edition of SQL Server 2017SQL Server 2017. SQL ServerSQL Serverの各エディションでサポートされる機能の一覧については、「 SQL Server 2016 の各エディションがサポートする機能」を参照してください。For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016.

SQL ServerSQL Server データ層アプリケーション オブジェクトSQL ServerSQL Server Data-tier Application Objects

SQL ServerSQL Server データ層アプリケーション (DAC) でテストされた各種オブジェクトの最大サイズと最大数。Maximum sizes and numbers of various objects that were tested in the SQL ServerSQL Server data-tier applications (DAC).

SQL ServerSQL Server DAC オブジェクトDAC object 最大サイズ/最大数 ( SQL ServerSQL Server 64 ビットの場合)Maximum sizes/numbers SQL ServerSQL Server (64-bit)
DAC ごとのデータベース数Databases per DAC 11
DAC ごとのオブジェクト数*Objects per DAC* データベース内のオブジェクト数または使用可能なメモリによって制限されます。Limited by the number of objects in a database, or available memory.

*制限の対象となるオブジェクトの種類は、ユーザー、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、ユーザー定義データ型、データベース ロール、スキーマ、およびユーザー定義テーブル型です。*The types of objects included in the limit are users, tables, views, stored procedures, user-defined functions, user-defined data type, database roles, schemas, and user-defined table types.

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

SQL ServerSQL Server レプリケーションで定義される各種オブジェクトの最大サイズと最大数。Maximum sizes and numbers of various objects defined in SQL ServerSQL Server Replication.

SQL ServerSQL Server レプリケーション オブジェクトReplication object 最大サイズ/最大数 (SQL Server 64 ビットの場合)Maximum sizes/numbers SQL Server (64-bit)
アーティクル数 (マージ パブリケーション)Articles (merge publication) 20482048
アーティクル数 (スナップショットまたはトランザクション パブリケーション)Articles (snapshot or transactional publication) 32,76732,767
テーブル内の列数* (マージ パブリケーション)Columns in a table* (merge publication) 246246
テーブル内の列数** (SQL ServerSQL Server のスナップショットまたはトランザクション パブリケーション)Columns in a table** (SQL ServerSQL Server snapshot or transactional publication) 1,0001,000
テーブル内の列数** (Oracle のスナップショットまたはトランザクション パブリケーション)Columns in a table** (Oracle snapshot or transactional publication) 995995
行フィルターで使用される列のバイト数 (マージ パブリケーション)Bytes for a column used in a row filter (merge publication) 1,0241,024
行フィルターで使用される列のバイト数 (スナップショットまたはトランザクション パブリケーション)Bytes for a column used in a row filter (snapshot or transactional publication) 8,0008,000

*行レベルの追跡を使用して競合を検出する場合 (既定値)、ベース テーブルには最大 1,024 列含めることができますが、最大 246 列がパブリッシュされるようにアーティクルから列をフィルター選択する必要があります。*If row tracking is used for conflict detection (the default), the base table can include a maximum of 1,024 columns, but columns must be filtered from the article so that a maximum of 246 columns is published. 列の追跡を使用する場合、ベース テーブルには最大 246 列を含めることができます。If column tracking is used, the base table can include a maximum of 246 columns.

**ベース テーブルには、パブリケーション データベースで許容される最大数 ( SQL ServerSQL Serverの場合は 1,024) の列を含めることができますが、列数がパブリケーション タイプに対して指定された最大数を超える場合は、アーティクルから列をフィルター選択する必要があります。**The base table can include the maximum number of columns allowable in the publication database (1,024 for SQL ServerSQL Server), but columns must be filtered from the article if they exceed the maximum specified for the publication type.

参照See Also

SQL Server 2016 のインストールに必要なハードウェアおよびソフトウェア Hardware and Software Requirements for Installing SQL Server 2016
システム構成チェッカーの検査パラメーター Check Parameters for the System Configuration Checker
SQL Server ユーティリティの機能とタスクSQL Server Utility Features and Tasks