SQL Server 2000 允許**在檢視表上建立索引**,將複雜查詢結果**實體化儲存**,查詢時直接讀取索引資料,無需即時計算。
SELECT * FROM 索引檢視表CREATE VIEW vw_SalesSummary
WITH SCHEMABINDING -- 必須綁定結構描述
AS
SELECT
ProductID,
SUM(Quantity) AS TotalQty,
SUM(Amount) AS TotalAmt,
COUNT_BIG(*) AS OrderCount -- 必須使用 COUNT_BIG(*)
FROM dbo.OrderDetails
GROUP BY ProductID
CREATE UNIQUE CLUSTERED INDEX IX_vw_SalesSummary_ProductID
ON vw_SalesSummary (ProductID)
CREATE NONCLUSTERED INDEX IX_vw_SalesSummary_TotalAmt
ON vw_SalesSummary (TotalAmt)
| 限制 | 說明 |
|---|---|
| SCHEMABINDING | 檢視表定義綁定底層表結構,防止結構變更導致索引失效 |
| 確定性函數 | 不可使用非確定性函數(如 GETDATE(), RAND()) |
| COUNT_BIG(*) | 聚合查詢必須包含 COUNT_BIG(*),而非 COUNT(*) |
| 無 OUTER JOIN | 不支援 LEFT/RIGHT/FULL JOIN |
| ANSI 設定 | 建立/使用時需特定 ANSI 選項(ANSI_NULLS, QUOTED_IDENTIFIER 等) |
企業管理員 → 資料表 → 右鍵「管理索引」→ 新增索引 → 選擇檢視表名稱,操作與資料表建立索引完全一致。
索引檢視表是 SQL Server 2000 將「查詢優化」從執行時前移至「設計時」的關鍵特性。善用此功能,可將複雜報表查詢從秒級降至毫秒級,實現「應用簡單、資料庫強大」的架構理想。