SQL Server Views性能

fra*_*976 1 sql-server performance views

如果我在SQL Server中定义了一个视图,如下所示:

CREATE View V1 
AS
SELECT *    
FROM t1
INNER JOIN t2 ON t1.f1 = t2.f2    
ORDER BY t1.f1
Run Code Online (Sandbox Code Playgroud)

我应该期待之间的性能差异

SELECT * FROM V1 WHERE V1.f1 = 100
Run Code Online (Sandbox Code Playgroud)

并且像这样避免观看

SELECT *    
FROM t1
INNER JOIN t2 ON t1.f1 = t2.f2    
WHERE t1.f1 = 100
ORDER BY t1.f1
Run Code Online (Sandbox Code Playgroud)

除了需要集中复杂查询之外,我们没有任何理由使用视图.

谢谢

Ode*_*ded 5

不应该有性能损失.

简化复杂查询是视图的用途.

如果性能是您所关注的 - 请阅读SQL Server中的索引视图:

索引视图提供了使用标准索引无法实现的额外性能优势.索引视图可以通过以下方式提高查询性能:

  • 聚合可以预先计算并存储在索引中,以最大限度地减少查询执行期间的昂贵计算.
  • 可以预先连接表,并存储结果数据集.
  • 可以存储联接或聚合的组合.