繁体   English   中英

Oracle 视图与 Oracle 中的连接表

[英]Oracle View vs joining tables in Oracle

我知道视图是 Oracle 中底层表或表集的窗口。 例如,如果我有一个通过连接多个表创建的视图,当我从视图中选择数据时,视图会执行实际的连接操作吗? 视图的性能是否比连接多个表以获取数据更好,还是在性能方面相同?

单个查询和使用视图的逻辑等效查询之间通常没有性能差异。

Oracle 具有优化器转换,可以将视图与外部查询结合起来; 谓词推送、简单和复杂的视图合并等。将视图视为构建大型查询的文本宏,而不是返回行的函数。

例如,在下面的查询中,Oracle 可能足够聪明,可以将主键列上的谓词推送到视图中。 尽管视图本身可能会返回数百万行,但是当整个查询运行时,Oracle 将首先在主键列上应用谓词。

select *
from view_returns_millions_of_rows
where primary_key_value = 1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM