SQL Server の最大容量仕様Maximum capacity specifications for SQL Server

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

この記事では、SQL ServerSQL Server コンポーネントで定義される各種オブジェクトの最大サイズと最大数を示します。This article shows maximum sizes and numbers of various objects defined in SQL ServerSQL Server components.

データベース エンジン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 オブジェクトデータベース エンジン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 BYORDER 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 バイトのルートだけが格納されます。Only a 24-byte root is stored in the main record for variable length columns pushed out of row. この機能を使用すると、以前のリリースの SQL ServerSQL Server よりも効果的に高い制限を課すことができます。This feature allows limit that is effectively higher than in previous releases of SQL ServerSQL Server. 詳細については、大量の行のサポートに関する記事を参照してください。For more information, see Large Row Support.
メモリ最適化テーブル内の行ごとのバイト数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 action 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)xmltext、または image 列ごとのバイト数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 BYORDER 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 non-key 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 or primary key 3232
INSERT ステートメントごとの列数Columns per INSERT statement 4,0964,096
SELECT ステートメントごとの列数Columns per SELECT statement 4,0964,096
テーブルごとの列数Columns per table 1,0241,024 スパース列セットを含むテーブルには、最大 30,000 列が含まれます。Tables that include sparse column sets include up to 30,000 columns. スパース列セット」を参照してください。See sparse column sets.
UPDATE ステートメントごとの列数Columns per UPDATE statement 4,0964,096 スパース列セットには、異なる制限が適用されます。Different limits apply to sparse column sets.
ビューごとの列数Columns per view 1,0241,024
クライアントごとの接続数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.

ストレージとして共有クラスター ディスクを使用する場合は、25 個のフェールオーバー クラスター インスタンス。25 failover cluster instances when using a shared cluster disks as storage.

ストレージ オプションとして SMB ファイル共有を使用する場合は、50 個のフェールオーバー クラスター インスタンス。50 failover cluster instances with SMB file shares as the storage option.
メモリ最適化テーブルごとのインデックス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 個以上のデータベースにアクセスするか、またはインターリーブ時に 2 つ以上のデータベースにアクセスすると、エラーが返されます。If a stored procedure accesses more than 64 databases, or more than two databases in interleaving, you will receive an error.
入れ子にしたサブクエリの数Nested subqueries 3232
入れ子構造のトランザクションNested transactions 4,294,967,2964,294,967,296
トリガーの入れ子レベル数Nested trigger levels 3232
テーブルごとの非クラスター化インデックス数Nonclustered indexes per table 999999
次のいずれかが存在する場合の、GROUP BY 句に含まれる個別の式の数: CUBEROLLUPGROUPING SETSWITH CUBEWITH 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 total number of objects in a database オブジェクトには、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、トリガー、ルール、デフォルト、および制約が含まれます。Objects include 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 オブジェクトには、テーブル、ビュー、ストアド プロシージャ、ユーザー定義関数、トリガー、ルール、デフォルト、および制約が含まれます。Objects include 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.
ユーザー接続数User connections 32,76732,767
XML インデックス数XML indexes 249249

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 2019 (15.x)SQL Server 2019 (15.x)のすべてのエディションで使用できるわけではありません。Utility control point is not available in every edition of SQL Server 2019 (15.x)SQL Server 2019 (15.x). 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 データ層アプリケーション オブジェクト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 ユーティリティの機能とタスクSQL Server utility features and tasks