Sql 如何为包含联合的视图编制索引
您好,我想在视图上创建索引,但我的视图使用联合。请参见示例Sql 如何为包含联合的视图编制索引,sql,sql-server,Sql,Sql Server,您好,我想在视图上创建索引,但我的视图使用联合。请参见示例 SELECT t_1.RiskID, t_1.HRASnapshotId, t_1.RiskDate, t_1.RiskTypeDescription, t_1.AgillicUserId, t_1.SequenceNo, t_1.RiskValue, t_1.RiskLe
SELECT t_1.RiskID,
t_1.HRASnapshotId,
t_1.RiskDate,
t_1.RiskTypeDescription,
t_1.AgillicUserId,
t_1.SequenceNo,
t_1.RiskValue,
t_1.RiskLevelDescription,
t_1.OrganisationID
FROM dbo.BE_Risks_Sequenced AS t
INNER JOIN dbo.BE_Risks_Sequenced AS t_1 ON
t.RiskTypeDescription = t_1.RiskTypeDescription
AND t.AgillicUserId = t_1.AgillicUserId
AND t.SequenceNo = t_1.SequenceNo + 1
WHERE (t.RiskValue = 1)
AND (t.RiskLevelDescription NOT LIKE t_1.RiskLevelDescription)
UNION ALL
SELECT RiskID, HRASnapshotId, RiskDate, RiskTypeDescription, AgillicUserId,
SequenceNo, RiskValue, RiskLevelDescription, OrganisationID
FROM dbo.BE_Risks_Sequenced
WHERE (SequenceNo = 1) AND (RiskValue > 1)
ORDER BY riskid asc
你无法愚弄服务器。对索引视图的限制将阻止联合,无论您如何称呼它。您的第一个查询中还有一个自连接,这将成为另一个障碍 两个可行的备选方案: 1) 将查询输出的副本存储在非规范化表中,并使用触发器对其进行同步。这很混乱,资源效率低下,但在报告/分析方面可以表现良好
2) 创建一些可以索引的更简单的中间视图,并通过具有自联接和并集的更复杂的未索引视图访问它们。如有必要,请使用(NOEXPAND)之类的表提示。您能否给我一个示例,说明如何将视图更改为可以索引的更简单的中间视图?