首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle视图中是否有任何与性能相关的优点?

在Oracle视图中是否有任何与性能相关的优点?
EN

Stack Overflow用户
提问于 2016-02-14 09:18:24
回答 2查看 87关注 0票数 0

我正在学习Oracle视图,我了解视图的概念,但对性能并不感到困惑。

我在看视频,在那里我听着甲骨文的观看可以提高性能。假设我创建了如下视图。

代码语言:javascript
复制
CREATE VIEW SALES_MAN
AS
SELECT * FROM EMP WHERE JOB='SALESMAN';

好的,现在我已经执行了查询以获得SALES_MAN细节。

代码语言:javascript
复制
SELECT * FROM SALES_MAN

好的,现在开始混乱。我在视频中听到,一旦执行上述查询SELECT * FROM SALES_MAN,数据/记录将在命中oracle后放入缓存内存中。如果我将执行相同的查询(在当前会话/登录中),Oracle引擎将不会命中数据库,并将从缓存内存中提供记录,对吗?

但我在许多网站上看到,视图没有为SQL性能 更多添加任何内容。

另一个引用说视图无助于性能。这里

那么视图是否也能提高性能呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-14 09:35:36

视图只是一种由查询定义的虚拟表。它没有适当的数据,性能将取决于底层表和查询定义。

但是您还可以让物化视图存储视图查询定义的结果。数据是自动同步的,您可以向视图添加索引。在这种情况下,您可以获得更好的性能。付出的代价是

  • 更多的空间(视图包含数据被欺骗),
  • 不能访问基础表中的最新数据
票数 0
EN

Stack Overflow用户

发布于 2016-02-14 13:25:17

你(也许也是这段未被引用的视频的创作者)混淆了两个不同的概念。缓存中的数据在第二次执行时使用的原因并不是因为它是视图的第二次执行。只要数据仍然保存在缓存中,它就可以用于任何需要它的查询。视图的第一次执行必须从磁盘获取数据这一事实应该是一个强有力的线索。如果您对视图的第二次使用直到几个小时或几天后数据不再在缓存中时才使用呢?答案依然存在。视图不会提高性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35390169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档