SQL Server 的最大容量規格

適用于:SQL Server (所有支援的版本)

本文說明 SQL Server 2016 (13.x) 和更新版本中定義之各種物件的大小和數目上限。 如果您想要檢視版本限制,請參閱依版本SQL Server計算容量限制

如需 SQL Server 2014 (12.x) ,請參閱SQL Server 2014 的最大容量規格

Database Engine 物件

SQL Server資料庫中或 Transact-SQL 語句中所參考之各種物件的最大值。

SQL Server Database Engine 物件 SQL Server (64 位) 的最大值 其他資訊
批次大小 65,536 * (網路封包大小) 網路封包大小是表格式資料流程的大小, (TDS) 用來在關係資料庫引擎與應用程式之間進行通訊的封包。 預設封包大小是 4 KB,由 network packet size 組態選項所控制。
包含 Transact-SQL 語句的字串位元組長度, (批次大小) 65,536 * (網路封包大小) 網路封包大小是表格式資料流程的大小, (TDS) 用來在關係資料庫引擎與應用程式之間進行通訊的封包。 預設封包大小是 4 KB,由 network packet size 組態選項所控制。
每個短字串資料行的位元組數 8,000
每個 GROUP BYORDER BY 的位元組數 8,060
每個索引鍵的位元組數 叢集索引為 900 個位元組數。 非叢集索引的 1,700 個位元組。 對於 SQL Server 2014 (12.x) 和更早版本,所有版本都支援所有索引類型的 900 個位元組。 叢集索引鍵中的位元組數目上限不能超過 900 個。 對於非叢集索引鍵,最大值為 1,700 個位元組。

您可以使用大小上限增加超過限制的可變長度資料行,來定義索引鍵。 不過,這些資料行中的資料大小總和不得超過限制。

在非叢集索引中,您可以包含額外的非索引鍵資料行,而且不會計入索引鍵的大小限制。 非索引鍵資料行可能有助於提升某些查詢的執行效能。
記憶體最佳化資料表之每個索引鍵的位元組數 非叢集索引的 2,500 個位元組。 只要所有索引鍵都能納入資料列,雜湊索引便沒有限制。 在記憶體優化資料表上,非叢集索引不能有索引鍵資料行,其最大宣告大小超過 2,500 個位元組。 如果索引鍵資料行中的實際資料比宣告大小上限短,則不重要。

對於雜湊索引鍵,大小沒有硬性限制。

對於記憶體優化資料表上的索引,沒有內含資料行的概念,因為所有索引原本就涵蓋所有資料行。

針對記憶體優化資料表,即使資料列大小為 8,060 個位元組,某些可變長度的資料行可以實際儲存在 8,060 個位元組之外。 不過,資料表上所有索引之所有索引鍵資料行的宣告大小上限,以及資料表中任何其他固定長度的資料行,必須符合 8,060 個位元組。
每個外部索引鍵的位元組數 900
每個主索引鍵的位元組 900
每個資料列的位元組數 8,060 SQL Server支援資料列溢位儲存體,這可讓可變長度資料行從資料列推送。 只有 24 位元組的根會儲存在以非資料列形式所推送可變長度資料行其主要記錄中。 如需詳細資訊,請參閱大型資料列支援
記憶體最佳化資料表中每個資料列的位元組數 8,060 SQL Server 2016 (13.x) 和更新版本的記憶體優化資料表支援非資料列儲存體。 如果資料表中所有資料行的大小上限超過 8,060 個位元組,則可變長度資料行會從資料列外推送;此動作是編譯時期決策。 針對以非資料列形式儲存的資料行,只會以非資料列形式儲存 8 位元組參考。 如需詳細資訊,請參閱 記憶體最佳化資料表中的資料表和資料列大小
預存程序之來源文字的位元組數 批次大小或 250 MB 當中較小者
每個 varchar(max)varbinary(max)xmltextimage 資料行的位元組數 2^31-1
每個 ntextnvarchar(max) 資料行的字元數 2^30-1
每份資料表的叢集索引數 1
GROUP BYORDER BY 中的資料行 僅受限於位元組數
GROUP BY WITH CUBEGROUP BY WITH ROLLUP 陳述式中的資料行或運算式 10
每個索引鍵的資料行數 32 如果資料表包含一或多個 XML 索引,則使用者資料表的叢集索引鍵限制為 31 個資料行,因為 XML 資料行會加入主要 XML 索引的叢集索引鍵中。 在 SQL Server,您可以在非叢集索引中包含非索引鍵資料行,以避免限制最多 32 個索引鍵資料行。 如需詳細資訊,請參閱 建立內含資料行的索引
每個外部索引鍵或主索引鍵的資料行數 32
每個 INSERT 陳述式的資料行數 4,096
每個 SELECT 陳述式的資料行數 4,096
資料表的資料行數 1,024 包含疏鬆資料行集的資料表最多含有 30,000 個資料行。 請參閱疏鬆資料行集合
每個 UPDATE 陳述式的資料行數 4,096 適用於疏鬆資料行集合的不同限制。
每個檢視的資料行數 1,024
每個用戶端的連接數目 已設定之連接的最大值
資料庫大小 524,272 TB
每個 SQL Server 執行個體的資料庫數目 32,767
每個資料庫的檔案群組數 32,767
記憶體最佳化資料的每個資料庫檔案群組 1
每個資料庫的檔案數 32,767
檔案大小 (資料) 16 TB
檔案大小 (記錄檔) 2 TB
每個資料庫之記憶體最佳化資料的資料檔案 SQL Server 2014 (12.x) 中的 4,096。 SQL Server 2016 (13.x) 和更新版本的限制較不嚴格。
記憶體最佳化資料之每個資料檔案的差異檔案 1
每個資料表的外部索引鍵資料表參考數 外寄 = 253。
內送 = 10,000。
相關限制,請參閱 Create Foreign Key Relationships
識別碼長度 (字元數) 128
每部電腦的執行個體數 單機伺服器為 50 個執行個體。

使用共用叢集磁片磁碟機作為儲存體時,25 個容錯移轉叢集實例。

使用 SMB 檔案共用作為儲存選項時為 50 個容錯移轉叢集執行個體。
每個記憶體最佳化資料表的索引 999 從 2017 SQL Server 2017 (14.x) 和 Azure SQL Database 中開始。

8 in SQL Server 2016 (13.x) and SQL Server 2014 (12.x) 。
每個連接的鎖定數 每部伺服器的最大鎖定數
每個實例的鎖定SQL Server 僅受限於記憶體 這個值是針對靜態鎖定配置。 動態鎖定僅受限於記憶體。
巢狀預存程序層級 32 如果預存程式存取超過 64 個資料庫,或在交錯中存取兩個以上的資料庫,您會收到錯誤。
巢狀子查詢 32
巢狀交易 4,294,967,296
巢狀觸發程序層級 32
每份資料表的非叢集索引數 999
當下列任何一個項目存在時,GROUP BY 子句中相異運算式的數目:CUBEROLLUPGROUPING SETSWITH CUBEWITH ROLLUP 32
GROUP BY 子句中由運算子產生的群組集合數目 4,096
每個預存程序的參數數目 2,100
每個使用者定義函數的參數數目 2,100
每份資料表的 REFERENCES 253
每份資料表的資料列數 受限於可用的儲存體
每個資料庫的資料表數 受限於資料庫中的總物件數 物件包含資料表、檢視、預存程序、使用者定義函式、觸發程序、規則、預設和條件約束等物件。 資料庫中所有物件數的總和不得超過 2,147,483,647。
每份分割區資料表或索引的分割區數 15,000
非索引資料行的統計資料 30,000
每個 SELECT 陳述式的資料表數 僅受限於可用的資源
每份資料表的觸發程序數 受限於資料庫的物件數 物件包含資料表、檢視、預存程序、使用者定義函式、觸發程序、規則、預設和條件約束等物件。 資料庫中所有物件數的總和不得超過 2,147,483,647。
使用者連線 32,767
XML 索引 249

SQL Server公用程式物件

在 SQL Server 公用程式中測試的各種物件最大值。

SQL Server 公用程式物件 SQL Server (64 位) 的最大值 其他資訊
每個SQL Server公用程式 (實體電腦或虛擬機器) 的電腦 100
每部電腦的SQL Server實例 5
每個SQL Server公用程式SQL Server實例總數 200 最大數目可能會根據伺服器的硬體組態而有所不同。 如需入門資訊,請參閱 SQL Server 公用程式的功能與工作。 SQL Server公用程式控制點不適用於每個版本的 SQL Server。 您可以閱讀每個版本 SQL Server 2019、SQL Server 2017SQL Server 2016支援的功能。
每個SQL Server實例的使用者資料庫,包括資料層應用程式 50
每個SQL Server公用程式的使用者資料庫總數 1,000
每個資料庫的檔案群組數 1
每個檔案群組的資料檔案數 1
每個資料庫的記錄檔案數 1
每部電腦的磁碟區數 3

SQL Server資料層應用程式物件

在SQL Server資料層應用程式中測試的各種物件最大值, (DAC) 。

SQL Server DAC 物件 SQL Server (64 位) 的最大值 其他資訊
每個 DAC 的資料庫數 1
每個 DAC 的物件數 受限於資料庫的物件數或可用的記憶體。 限制中包含的物件類型包括使用者、資料表、檢視、預存程式、使用者定義函數、使用者定義資料類型、資料庫角色、架構和使用者定義資料表類型。

複寫物件

SQL Server 複寫中定義之各種物件的最大值。

SQL Server Replication 物件 SQL Server的最大值
(64 位元)
其他資訊
發行項 (合併式發行集) 2,048
發行項 (快照式或交易式發行集) 32,767
資料表中的資料行 (合併式發行集) 246 如果使用資料列追蹤執行衝突偵測 (預設值),基底資料表最多可以包含 1,024 個資料行,但必須從發行項篩選資料行,以便發行最多 246 個資料行。 如果使用資料行追蹤,則基底資料表可包括的資料行數上限為 246。
資料表中的資料行 (SQL Server快照集或交易式發行集) 1,000 基表可以包含SQL Server發行集資料庫中允許的資料行數目上限, (1,024) ,但是如果資料行超過發行集類型所指定的最大值,則必須從發行項篩選。
資料表中的資料行 (Oracle 快照式或交易式發行集) 995 基表可以包含SQL Server發行集資料庫中允許的資料行數目上限, (1,024) ,但是如果資料行超過發行集類型所指定的最大值,則必須從發行項篩選。
用於資料列篩選之資料行的位元組數 (合併式發行集) 1,024
用於資料列篩選之資料行的位元組數 (快照式或交易式發行集) 8,000

另請參閱