下面是一個創建按小時分組的索引視圖的腳本示例。我還有另外兩個日日。每當使用稱爲CreationDate的確切DateTime時間戳向用戶頒發點時,表UserPoints將存儲記錄。
CREATE VIEW [dbo].[HourlyPoints] WITH SCHEMABINDING AS
SELECT
[Count] = COUNT_BIG(*) --Required by
我對使用SQL Server 2016中的索引視圖有點困惑。 這是我的問題。如果我有很多列的事實表,我創建了一個名爲IV_Sales索引視圖作爲 select
year,
customer,
sum(sales)
from F_Sales
group by year, customer
我會集結爲一年,客戶的所有銷售。 之後,當用戶運行來自F_sales像 S
在創建索引視圖之後,我嘗試禁用基表中的所有索引,包括外鍵列的索引(約束仍然存在),視圖的查詢計劃保持不變。 它就像魔術對我來說,索引視圖將能夠如此多的優化查詢,即使沒有被索引的基表。即使在視圖上沒有任何索引,SQL Server也能夠對索引視圖的主鍵索引執行索引掃描,以獲取比使用基錶快1000倍的數據。 喜歡的東西SELECT * FROM MyView WITH(NOEXPAND) WHERE