比从头开始编写整个sql更快或更慢地使用视图

时间:2010-08-18 12:56:07

标签: sql sql-server performance

我有3个表(A,B,C),我经常需要查询

的结果
A inner join B
union
A inner join C

我只是在考虑哪种方式会更快:

  • 从头开始在每个查询中写下整件事

  • 创建视图并在查询中使用

2 个答案:

答案 0 :(得分:2)

一般来说,视图只是SQL的存储版本,在这种情况下不是。但是,您可以通过使用索引视图获得一些好处,特别是使用聚合....已经说过...索引视图有很多限制...不允许一个union

答案 1 :(得分:1)

如果视图不包含聚合,则使用视图将与使用原始SQL完全相同。没有聚合意味着where子句可以“内部”应用于优化器认为最佳的视图(基于统计信息)。 (我认为这通常被称为'推送'视图中的where子句)

相关问题