提示:SQL Server中用索引視圖查看性能狀況
現在你可以建立自己的視圖。為使事情更加簡單,我建立一個嶄新的視圖。
CREATE VIEW dbo.vw_SalesByProduct_Indexed
WITH SCHEMABINDING
AS
SELECT
Product,
COUNT_BIG(*) AS ProductCount,
SUM(ISNULL(SalePrice,0)) AS TotalSales
FROM dbo.SalesHistory
GROUP BY Product
GO
下面的腳本給我們的視圖建立索引:
CREATE UNIQUE CLUSTERED INDEX
idx_SalesVIEw ON vw_SalesByProduct_Indexed(Product)
為表明已經給視圖建立一個索引,並且它確實占用數據庫的空間,運行下面的腳本查明聚集索引有多少行以及視圖占用多少空間。
EXECUTE sp_spaceused 'vw_SalesByProduct_Indexed'
下面的SELECT語句和以前的語句相同,只是這次它執行一個聚集索引搜索,這個過程完成得非常快。
SELECT
Product, TotalSales, ProductCount
FROM vw_SalesByProduct_Indexed
WHERE Product = 'Computer'
不要忘記性能測試
索引視圖如果使用得當,它會十分有用,因為它們能夠顯著地提高查詢的性能。但是,由於聚集索引增加的性能,數據庫引擎必須在視圖基表的所有事務過程中維持那個索引。因為這個交換,建立一個索引視圖可能對系統有益,也可能給系統造成傷害。確定這樣做是有益還是有害的最佳方法就是進行全面的性能測試。