具有内部联接性能的Sql Server视图

时间:2013-11-06 10:48:59

标签: sql sql-server join

我试图了解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。内部联接执行会对性能产生额外成本。

2 个答案:

答案 0 :(得分:1)

无论是从单个表还是多个表中选择列,都始终执行JOIN。所以我会说差异可以忽略不计

答案 1 :(得分:1)

基本上第二个查询会慢一点,因为SQL Server返回的数据包含额外的列。在这两种情况下都会发生INNER JOIN