我有3个表(A,B,C),我经常需要查询
的结果A inner join B
union
A inner join C
我只是在考虑哪种方式会更快:
从头开始在每个查询中写下整件事
创建视图并在查询中使用
答案 0 :(得分:2)
一般来说,视图只是SQL的存储版本,在这种情况下不是。但是,您可以通过使用索引视图获得一些好处,特别是使用聚合....已经说过...索引视图有很多限制...不允许一个union
答案 1 :(得分:1)
如果视图不包含聚合,则使用视图将与使用原始SQL完全相同。没有聚合意味着where子句可以“内部”应用于优化器认为最佳的视图(基于统计信息)。 (我认为这通常被称为'推送'视图中的where子句)