我试图了解 Sql Server 如何处理视图和视图内的连接。
我有类似的看法。
CREATE VIEW
[dbo].[vw_Product]
AS
SELECT
Product.Id AS ProductId,
Customer.Name AS CustomerName
FROM
Product
INNER JOIN
Customer ON Customer.Id = Product.CustomerId
以下两个查询在性能方面有什么区别?
SELECT ProductId, CustomerName FROM vw_Product
SELECT ProductId FROM vw_Product
问这个问题的原因是第一个查询选择了CustomerName。在视图中,Customer 表上有一个 Inner Join。Inner Join 执行对性能有额外的影响。