Muszę użyć widoków indeksowanych, aby osiągnąć wydajność. Jak widzę z tej tabeli porównawczej edycja standardowa nie obsługuje widoków indeksowanych. Ale BOL mówi:
Widoki indeksowane można tworzyć w dowolnej edycji SQL Server. W SQL Server Enterprise optymalizator zapytań automatycznie uwzględnia widok indeksowany. Aby użyć widoku indeksowanego we wszystkich innych edycjach, należy zastosować wskazówkę dotyczącą tabeli NOEXPAND.
Więc to zadziała (mówię o wydajności)
select * from dbo.OrderTotals with (noexpand, index=IXCU_OrderTotals)
w wersji SQL Server Standard, a także działa
select * from dbo.OrderTotals
na Enterprise?
Oto kod do wyświetlenia:
CREATE VIEW dbo.OrderTotals
WITH SCHEMABINDING
AS
select
OrderId = r.OrderId
, TotalQty = SUM(r.Quantity)
, TotalGrossConsid = SUM(r.Price * r.Quantity)
, XCount = COUNT_BIG(*)
from dbo.Order r
group by r.OrderId
CREATE UNIQUE CLUSTERED INDEX IXCU_OrderTotals ON OrderTotals (OrderId)