Share via


SQL Server 的最大容量規格

下表指定 SQL Server 元件中已定義之各種物件的大小和數目上限。

Database Engine 物件

下表指定 SQL Server 資料庫中已定義或 Transact-SQL 陳述式中所參考之各種物件的大小和數目上限。

SQL Server Database Engine 物件

SQL Server 大小/數目上限 (32 位元)

SQL Server 大小/數目上限 (64 位元)

批次大小1

65,536 * 網路封包大小

65,536 * 網路封包大小

每個短字串資料行的位元組數

8,000

8,000

每個 GROUP BY、ORDER BY 的位元組數

8,060

8,060

每個索引鍵的位元組數2

900

900

每個外部索引鍵的位元組數

900

900

每個主索引鍵的位元組

900

900

每個資料列的位元組數8

8,060

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

每個索引鍵的資料行數7

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

每個資料庫的檔案數

32,767

32,767

檔案大小 (資料)

16 TB

16 TB

檔案大小 (記錄檔)

2 TB

2 TB

每個資料表的外部索引鍵資料表參考數4

253

253

識別碼長度 (字元數)

128

128

每部電腦的執行個體數

所有的 SQL Server 版本 (Workgroup 除外) 在獨立伺服器上可支援 50 個執行個體。Workgroup 每部電腦最多支援 16 個執行個體。

SQL Server 在容錯移轉叢集上可支援 25 個執行個體。

單機伺服器為 50 個執行個體。

容錯移轉叢集為 25 個執行個體。

包含 SQL 陳述式的字串長度 (批次大小)1

65,536 * 網路封包大小

65,536 * 網路封包大小

每個連接的鎖定數

每部伺服器的最大鎖定數

每部伺服器的最大鎖定數

每個 SQL Server 執行個體的鎖定數5

最多為 2,147,483,647

僅受限於記憶體

巢狀預存程序層級6

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

每份資料表的 REFERENCES

253

253

每份資料表的資料列數

受限於可用的儲存體

受限於可用的儲存體

每個資料庫的資料表數3

受限於資料庫的物件數

受限於資料庫的物件數

每份資料分割資料表或索引的資料分割數

1,000

1,000

非索引資料行的統計資料

30,000

30,000

每個 SELECT 陳述式的資料表數

僅受限於可用的資源

僅受限於可用的資源

每份資料表的觸發程序數3

受限於資料庫的物件數

受限於資料庫的物件數

每個 UPDATE 陳述式 (寬型資料表) 的資料行數

4096

4096

使用者連線

32,767

32,767

XML 索引

249

249

1 網路封包大小是表格式資料流 (TDS) 封包的大小,用於應用程式與關聯式 Database Engine 之間的通訊。預設封包大小是 4 KB,由 network packet size 組態選項所控制。

2 在 SQL Server 中,任何索引鍵的最大位元組數不得超過 900。假設這些資料行內從未插入超過 900 位元組的資料,則您可使用大小上限累加超過 900 的可變長度資料行定義索引鍵。在 SQL Server 中,您可以在非叢集索引中包含非索引鍵資料行,以避免達到最大索引鍵大小 900 個位元組。

3 資料庫物件包含像資料表、檢視、預存程序、使用者定義函數、觸發程序、規則、預設值和條件約束等物件。資料庫中所有物件數的總和不得超過 2,147,483,647。

4雖然資料表可包含無限數目的 FOREIGN KEY 條件約束,但是建議的最大值為 253。根據主控 SQL Server 的硬體組態而定,指定額外的 FOREIGN KEY 條件約束對於查詢最佳化工具的處理可能會耗費極大成本。

5 這個值是針對靜態鎖定配置。動態鎖定僅受限於記憶體。

6 如果預存程序存取超過 8 個資料庫或以交錯方式超過 2 個資料庫,您會收到錯誤訊息。

7 如果資料表包含一或多個 XML 索引,則使用者資料表的叢集索引鍵限制為 15 個資料行,因為 XML 資料行會加入至主要 XML 索引的叢集索引鍵中。在 SQL Server 中,您可以在非叢集索引中包含非索引鍵資料行,以避免達到最多 16 個索引鍵資料行的限制。如需詳細資訊,請參閱<具有內含資料行的索引>。

8SQL Server 支援資料列溢位儲存體,好讓可變長度的資料行從資料列發送。只有 24 位元組的根會儲存在從資料列發送之可變長度資料行的主要記錄中;因此,有效資料列限制高於舊版 SQL Server。如需詳細資訊,請參閱《SQL Server 線上叢書》中的<超過 8 KB 的資料列溢位資料>主題。

複寫物件

下表指定 SQL Server Replication 中已定義之各種物件的大小和數目上限。

SQL Server Replication 物件

SQL Server 大小/數目上限 (32 位元)

SQL Server 大小/數目上限 (64 位元)

發行項 (合併式發行集)

256

256

發行項 (快照式或交易式發行集)

32,767

32,767

資料表中的資料行1 (合併式發行集)

246

246

資料表中的資料行2 (SQL Server 快照式或交易式發行集)

1,000

1,000

資料表中的資料行2 (Oracle 快照式或交易式發行集)

995

995

用於資料列篩選之資料行的位元組數 (合併式發行集)

1,024

1,024

用於資料列篩選之資料行的位元組數 (快照式或交易式發行集)

8,000

8,000

1 如果使用資料列追蹤來進行衝突偵測 (預設值),則基底資料表可包括的資料行行數上限為 1,024,不過,因為必須從發行項篩選資料行,所以發行的資料行行數上限為 246。如果使用資料行追蹤,則基底資料表可包括的資料行數上限為 246。如需有關追蹤層級的詳細資訊,請參閱<合併式複寫如何偵測並解決衝突>的「追蹤層級」一節。

2基底資料表可包含發行集資料庫中允許的最大資料行數 (如果是 SQL Server,則為 1,024 個),但如果資料行超出對發行集類型指定的最大值,則必須篩選發行項的資料行。