了解資料庫系統的硬性限制,是架構設計、容量規劃與故障排查的基礎。本文整理 SQL Server 2000 (含 7.0 對比) 的核心容量規格,涵蓋資料庫大小、物件數量、索引限制、連線數等關鍵指標。
| 規格項目 | SQL Server 7.0 | SQL Server 2000 | 備註 |
|---|---|---|---|
| 資料庫最大大小 | 1,048,516 TB | 1,048,516 TB | MSDE/Desktop Engine 限 2 GB |
| 單一資料表最大列數 | 1,024 | 1,024 | |
| 單一資料表最大行數 | 受儲存空間限制 | 受儲存空間限制 | 實際受限於檔案大小與分區 |
| 單一索引最大鍵長 | 900 位元組 | 900 位元組 | 可變長度欄位總長不得超過 900 |
| 單一資料列最大大小 | 8,060 位元組 | 8,060 位元組 | 含可變長欄位開銷 |
| 單一資料表非叢集索引數 | 249 | 249 | 含 1 個叢集索引共 250 個 |
| 單一 SELECT 陳述式最大資料表數 | 256 | 256 | |
| 單一 SQL Server 實例最大資料庫數 | 32,767 | 32,767 | |
| 單一資料庫最大檔案數 | 32,767 | 32,767 | |
| 資料檔最大大小 | 32 TB | 32 TB | |
| 記錄檔最大大小 | 4 TB | 32 TB | 2000 版大幅提升 |
| 最大連接數 | 配置的最大連接數 | 配置的最大連接數 | 預設 0 = 無限制 (受記憶體限制) |
| 批次大小 | 65,536 × 網路封包大小 | 65,536 × 網路封包大小 | 預設封包 4KB |
| 識別碼最大長度 | 128 字元 | 128 字元 | |
| 巢狀存儲程序層數 | 32 | 32 | |
| 巢狀觸發器層數 | 32 | 32 | |
| 單一實例最大鎖數 | 2,147,483,647 (動態) | 2,147,483,647 (動態) | 佔記憶體 40% |
| 每台電腦最大實例數 | N/A | 16 | 2000 新增命名實例支援 |
單行資料 (含所有固定長欄位 + 可變長欄位指標 + 系統開銷) 不得超過 8,060 位元組。
突破方案:使用 TEXT/NTEXT/IMAGE (2GB-2) 或 SQL 2005+ 的 VARCHAR(MAX)/NVARCHAR(MAX)/VARBINARY(MAX) 溢位儲存。
單一索引鍵 (主鍵、外鍵、唯一索引、一般索引) 總長度 ≤ 900 位元組。
變通:僅索引前綴 (如 VARCHAR(500) 索引前 200 字元)、使用雜湊值欄位、升級至 SQL 2008+ (支援 1700 位元組)。
理論上限極大,實際受限於:
• master 資料庫系統表儲存容量
• 檔案系統目錄項目限制
• 管理維護複雜度
SQL 7.0 僅 4TB,2000 版提升至 32TB,支援超大型交易密集型應用。
| 指標 | 警告閾值 | 嚴重閾值 | 行動 |
|---|---|---|---|
| 資料檔使用率 | 70% | 85% | 擴容/歸檔/分區 |
| 記錄檔使用率 | 60% | 80% | 檢查長交易/備份頻率 |
| 索引鍵長度 | 700 位元組 | 850 位元組 | 重新設計索引策略 |
| 資料表數/資料庫 | 500 | 800 | 拆分資料庫/Schema 隔離 |
VARCHAR(MAX) 突破 8KB 列限制SQL Server 2000 規格雖屬歷史版本,但其核心限制 (8KB 頁、900 索引鍵、32K 物件數) 影響至今。理解這些硬性邊界,能在架構設計階段規避風險,在效能調優時找到真正瓶頸,在版本升級時量化收益。