У меня есть следующее индексированное представление:
ALTER View [CIC].[vwCoaterC473Heat] WITH SCHEMABINDING
AS
Select
id as ID,
DATEADD(ms, -DATEPART(ms, read_time), read_time) as ReadTime,
equipment_id as EquipmentID,
...
...
From dbo.td_coater_c473_heat
Where read_time >= Convert(dateTime,'1/1/2012',120)
CREATE UNIQUE CLUSTERED INDEX [IX_vwCoaterC473Heat_ReadTime_EquipmentID_ID]
ON [CIC].[vwCoaterC473Heat]
(
[ReadTime] ASC,
[EquipmentID] ASC,
[ID] ASC
)
GO
И у меня есть следующий запрос, который ссылается на индексированное представление:
Select
r.Coater,
r.ReadTime,
C473_left_A_actual_Temp,
C473_right_A_actual_Temp,
C473_left_B_actual_Temp,
C473_right_B_actual_Temp,
HD02A_Actual_Voltage,
HD02A_Actual_Current,
HD02B_Actual_Voltage,
HD02B_Actual_Current
From Cic.RandyTemp r
Inner Join Cic.vwCoaterC473Heat a
On a.EquipmentId = r.Coater And a.ReadTime = r.ReadTime
План запроса, сгенерированный из этого, выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/KjX2L.png)
Мне любопытно, почему SQL Server пропускает постоянные данные из индексированного представления и запрашивает базовую таблицу, на которой основано представление.