SQL Server 2008 聯機叢書(為便於網友搜尋查閱,特貼於此) |
下表指定在 SQL Server 資料庫中定義的或在 Transact-SQL 陳述式中引用的各種對象的最大大小和最大數量。
SQL Server 資料庫引擎對象 |
最大大小/數量 - 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 |
每個資料表的 REFERENCE 個數 |
253 |
253 |
每個資料表的行數 |
受可用儲存空間限制 |
受可用儲存空間限制 |
每個資料庫的表數3 |
受資料庫中對象數限制 |
受資料庫中對象數限制 |
每個分區表或索引的分區數 |
1,000 |
1,000 |
非索引列的統計資訊條數 |
30,000 |
30,000 |
每個 SELECT 語句的表個數 |
256 |
256 |
每個表的觸發器個數3 |
受資料庫中對象數限制 |
受資料庫中對象數限制 |
每個 UPDATE 語句(寬表)的列數 |
4096 |
4096 |
使用者串連 |
32,767 |
32,767 |
XML 索引 |
249 |
249 |
1網路資料包大小指的是用於在應用程式和關聯式資料庫引擎之間進行通訊的表格式資料流 (TDS) 資料包的大小。預設的資料包大小為 4 KB,由“網路資料包大小”配置選項控制。
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 索引,由於 XML 列被添加到主 XML 索引的聚集鍵,使用者表的聚集鍵被限制為 15 列。在 SQL Server 中,可在非叢集索引中包括非鍵列以避免最多為 16 個鍵列的限制。有關詳細資料,請參閱具有內含資料行索引。
8 SQL Server 支援行溢出儲存,行溢出儲存使長度可變的列可以被推送到行外。只有 24 位元組的根儲存在推送出行外的可變長度列的主記錄中;因此,此版本中的有效行限制高於 SQL Server 早期版本中的有效行限制。有關詳細資料,請參閱 SQL Server 聯機叢書中的“資料列溢位資料超過 8 KB”主題。
下表指定了 SQL Server 複製中定義的各種對象的最大大小和最大數量。
SQL Server 複製對象 |
最大大小/數量 - 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 中為 1024),但如果這些列的數目超過為發布類型指定的最大值,則必須從項目中篩選這些列。