下表指定 SQL Server 元件中定義之各種物件的大小和數目上限。 若要流覽至 SQL Server 技術的數據表,請按下其連結:
資料庫引擎物件
下表指定 SQL Server 資料庫中定義之各種物件的最大大小和數量,或在 Transact-SQL 語句中參考。
| SQL Server 資料庫引擎物件 | 最大大小及數量 SQL Server(32 位) | 最大尺寸/數量 SQL Server (64 位元) |
|---|---|---|
| 批次大小 注意:網路封包大小是表格式數據流 (TDS) 封包的大小,用來在應用程式和關係資料庫引擎之間進行通訊。 默認封包大小為 4 KB,並由網路封包大小組態選項控制。 |
65,536 * 網路封包大小 | 65,536 * 網路封包大小 |
| 每個簡短字串欄的位元組數 | 8,000 | 8,000 |
| 每個 GROUP BY、ORDER BY 的位元元組數 | 8,060 | 8,060 |
| 每個索引鍵的位元元組數 注意:任何索引鍵中的位元組數目上限不能超過 SQL Server 中的 900 個。 您可以使用可變長度數據行來定義索引鍵,其大小上限最多可加到 900 個以上,前提是這些數據行中從未插入超過 900 個字節的數據列。 在 SQL Server 中,您可以在非叢集索引中包含非索引鍵數據行,以避免索引鍵大小上限為 900 個字節。 |
900 | 900 |
| 每個外鍵的位元組數 | 900 | 900 |
| 每個主鍵的位元組數 | 900 | 900 |
| 每行的位元組數 注意: SQL Server 支援列溢位儲存,可以將可變長度的欄位資料移至列外儲存。 只有 24 位元組的根會儲存在主記錄中,以便將可變長度欄位存儲在資料列之外。因此,資料列的有效限制高於舊版 SQL Server。 如需詳細資訊,請參閱《SQL Server 在線叢書》中的 |
8,060 | 8,060 |
| 記憶體優化資料表中每行的位元組數 注意: SQL Server In-Memory OLTP 不支援數據列溢位記憶體。 可變長度的欄位不會被推出行。 這會將您可以在記憶體優化數據表中指定的可變長度數據行寬度上限限製為數據列大小上限。 如需詳細資訊,請參閱 Memory-Optimized 數據表中的數據表和數據列大小。 |
不支援 | 8,060 |
| 預存程式來源文字中的位元組 | 小於批次大小或 250 MB | 小於批次大小或 250 MB |
每個varchar(max)、varbinary(max)、xml、text或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 |
| 每個索引鍵的欄位數 注意:如果數據表包含一或多個 XML 索引,則用戶數據表的叢集索引鍵限制為 15 個數據行,因為 XML 資料行會新增至主要 XML 索引的叢集索引鍵。 在 SQL Server 中,您可以在非叢集索引中包含非索引鍵數據行,以避免限制最多 16 個索引鍵數據行。 如需詳細資訊,請參閱 建立內含資料行的索引。 |
16 | 16 |
| 每個外鍵的欄位數 | 16 | 16 |
| 每個主鍵的欄位數 | 16 | 16 |
| 每個非寬表格的欄數 | 1,024 | 1,024 |
| 每個寬表的列數 | 30,000 | 30,000 |
| 每個 SELECT 語句的欄位數 | 4,096 | 4,096 |
| 每個 INSERT 語句的欄位數 | 4096 | 4096 |
| 每個用戶端的連線 | 已設定連線的最大值 | 已設定連線的最大值 |
| 資料庫大小 | 524,272 TB | 524,272 TB |
| 每個 SQL Server 實例的資料庫 | 32,767 | 32,767 |
| 每個資料庫的檔案群組 | 32,767 | 32,767 |
| 每個資料庫的記憶體優化數據檔案組 | 不支援 | 1 |
| 每個資料庫的檔案數量 | 32,767 | 32,767 |
| 檔案大小 (資料) | 16 TB | 16 TB |
| 檔案大小(記錄檔) | 2 TB | 2 TB |
| 每個資料庫記憶體優化數據的數據檔 | 不支援 | 4.096 |
| 記憶體優化數據的每個數據檔案的增量檔案 | 不支援 | 1 |
| 每個數據表的外鍵數據表參考 注意:雖然數據表可以包含無限數量的FOREIGNKEY條件約束,但建議的最大值為253。 視裝載 SQL Server 的硬體組態而定,指定額外的 FOREIGN KEY 條件約束可能會讓查詢優化器處理成本高昂。 |
253 | 253 |
| 識別元長度(以字元為單位) | 128 | 128 |
| 每部計算機的實例 | 所有 SQL Server 版本獨立伺服器上的 50 個實例。 當您使用共用叢集磁碟作為叢集安裝的預存選項時,SQL Server 支援故障轉移叢集上的 25 個實例,如果您選擇 SMB 檔案共用作為叢集安裝的記憶體選項,請參閱 安裝 SQL Server 2014 的硬體和軟體需求。 |
獨立伺服器上的 50 個實例。 如果在故障轉移叢集上使用共用叢集磁碟作為存儲選擇,SQL Server 支援 25 個實例;而如果選擇使用 SMB 檔案共用作為叢集安裝的存儲選項,SQL Server 則支援 50 個實例。 |
| 每個記憶體優化資料表的索引 | 不支援 | 8 |
| 包含 SQL 語句的字串長度(批次大小) 注意:網路封包大小是表格式數據流 (TDS) 封包的大小,用來在應用程式和關係資料庫引擎之間進行通訊。 默認封包大小為 4 KB,並由網路封包大小組態選項控制。 |
65,536 * 網路封包大小 | 65,536 * 網路封包大小 |
| 每個連線的鎖定數 | 每台伺服器最大鎖定數量 | 每臺伺服器的鎖數上限 |
| 每個 SQL Server 實例的鎖定 注意:此值適用於靜態鎖定配置。 動態鎖定只受限於記憶體。 |
最高 2,147,483,647 | 僅受記憶體限制 |
| 巢狀預存程式層級 注意:如果預存程式存取超過 64 個資料庫,或在交錯中存取超過 2 個資料庫,您會收到錯誤。 |
32 | 32 |
| 巢狀子查詢 | 32 | 32 |
| 嵌套觸發等級 | 32 | 32 |
| 每個資料表的非叢集索引 | 999 | 999 |
| 當下列任一項存在時,GROUP BY 子句中的相異表達式數目:CUBE、ROLLUP、GROUPING SETS、WITH CUBE、WITH ROLLUP | 32 | 32 |
| GROUP BY 子句中運算子所產生的群組集數目 | 4,096 | 4,096 |
| 每個預存程序的參數 | 2,100 | 2,100 |
| 使用者自定函式的參數 | 2,100 | 2,100 |
| 每個數據表的參照項目 | 253 | 253 |
| 每個數據表的數據列 | 受限於可用的記憶體 | 受限於可用的記憶體 |
| 每個資料庫中的資料表數量 注意:資料庫物件包括數據表、檢視、預存程式、使用者定義函數、觸發程式、規則、預設值和條件約束等物件。 資料庫中所有物件的總和不能超過 2,147,483,647。 |
受限於資料庫中的物件數目 | 受限於資料庫中的物件數目 |
| 每個分割表或索引的分割區段 | 1,000 **重要** 在 32 位系統上可以建立具有超過 1,000 個數據分割的數據表或索引,但不受支援。 |
15,000 |
| 非索引欄的統計數據 | 30,000 | 30,000 |
| 與 SELECT 語句相關的資料表 | 僅受可用資源限制 | 僅受限於可用資源 |
| 每個資料表的觸發器 注意:資料庫物件包括數據表、檢視、預存程式、使用者定義函數、觸發程式、規則、預設值和條件約束等物件。 資料庫中所有物件的總和不能超過 2,147,483,647。 |
受限於資料庫中的物件數目 | 受限於資料庫中的物件數目 |
| 每個 UPDATE 語句的欄位(Wide Tables) | 4096 | 4096 |
| 使用者連線 | 32,767 | 32,767 |
| XML 索引 | 249 | 249 |
SQL Server 公用程序物件
下表指定在 SQL Server 公用程式中測試的各種物件大小和數目上限。
| SQL Server 公用程序物件 | 最大大小及數量 SQL Server(32 位) | 最大尺寸/數量 SQL Server (64 位元) |
|---|---|---|
| 每一 SQL Server 公用程式的電腦(實體電腦或虛擬機) | 100 | 100 |
| 每部電腦的 SQL Server 實例 | 5 | 5 |
| 每個 SQL Server 公用程式的 SQL Server 實例總數 | 200* | 200* |
| 每個 SQL Server 實例的用戶資料庫,包括資料層應用程式 | 50 | 50 |
| 每個 SQL Server 公用程式的使用者資料庫總數 | 1,000 | 1,000 |
| 每個資料庫的檔案群組 | 1 | 1 |
| 每個檔案群組的數據檔 | 1 | 1 |
| 每個資料庫的記錄檔 | 1 | 1 |
| 每部電腦的磁碟區 | 3 | 3 |
*SQL Server 公用程式所支援的 SQL Server 受控實例數目上限可能會根據伺服器的硬體組態而有所不同。 如需入門資訊,請參閱 SQL Server 公用程式功能和工作。 SQL Server 公用程式控制點不適用於 SQL Server 2014 的每個版本。 如需 SQL Server 版本所支援的功能清單,請參閱 SQL Server 2014 版本支援的功能。
SQL Server 資料層應用程式物件
下表指定在 SQL Server 資料層應用程式 (DAC) 中測試的各種物件大小和數目上限。
| SQL Server DAC 物件 | 最大大小及數量 SQL Server(32 位) | 最大尺寸/數量 SQL Server (64 位元) |
|---|---|---|
| 每個 DAC 所擁有的資料庫 | 1 | 1 |
| 每個 DAC 的物件* | 受限於資料庫中的物件數目或可用的記憶體。 | 受限於資料庫中的物件數目或可用的記憶體。 |
*限制中包含的物件類型包括使用者、數據表、檢視表、預存程式、使用者定義函數、使用者定義數據類型、資料庫角色、架構和使用者定義數據表類型。
複寫物件
下表指定 SQL Server 複寫中定義之各種物件的大小和數目上限。
| SQL Server 複寫物件 | 最大大小及數量 SQL Server(32 位) | 最大尺寸/數量 SQL Server (64 位元) |
|---|---|---|
| 文章(合併出版) | 256 | 256 |
| 文章(快照式或交易式發布) | 32,767 | 32,767 |
| 資料表中的資料欄* (合併式發行集) | 246 | 246 |
| 資料表中的欄位** (SQL Server 快照式或交易式發行) | 1,000 | 1,000 |
| 資料表中的數據行** (Oracle 快照式或交易式發行集) | 995 | 995 |
| 在資料列篩選器中使用的欄位位元組(合併式發行集) | 1,024 | 1,024 |
| 用於資料列篩選的欄位位元組(快照式或交易式發行集) | 8,000 | 8,000 |
*如果數據列追蹤用於衝突偵測(預設值),基表最多可以包含 1,024 個數據行,但必須從發行項篩選數據行,以便發行最多 246 個數據行。 如果使用數據行追蹤,基表最多可以包含 246 個數據行。
**基表可以包含發行集資料庫中允許的數據行數目上限(SQL Server 為 1,024),但如果數據行超過發行集類型所指定的最大值,就必須從發行項篩選數據行。
另請參閱
安裝 SQL Server 2014 的
檢查系統設定檢查程式的參數
SQL Server 公用程式功能和工作