gpt4 book ai didi

sql - 是否有理由不在 Oracle 中使用 View ?

转载 作者:行者123 更新时间:2023-12-04 05:57:36 25 4
gpt4 key购买 nike

我最近注意到在我的公司(而且它是一家大公司)中没有人使用 View 。

我想创建一些 View ,主要是因为它们使我的查询看起来更简单,并且这些 View 位于不太频繁更新的大表上(每天一次)。

我的替代方法是创建一个类型记录的类型表,并在每次调用 SP 时填充它。这比使用 View 更好吗? (我的猜测是没有)

PS:数据库是oracle 10g 和
编辑:
- 是的,我四处打听,但没有人能给我一个理由。
- 将使用它们的 View 和查询都对连接很重要。

最佳答案

当存在性能影响时,美学在 SQL 或一般编码中没有一席之地。

如果优化器确定可以发生谓词推送,则 View 将与直接查询 View 表示的表一样好。正如贾斯汀所提到的,因为 View 是一个宏,它扩展到 View 所代表的底层查询中——软解析(重用缓存中的查询)很可能是因为缓存检查需要完全匹配查询。

但请注意以下事项:

  • 分层 View (一个 View 基于另一个 View )是一种不好的做法——在 View 运行之前不会遇到错误
  • 将 View 连接到其他表和/或 View 是非常值得怀疑的——如果底层查询代替了 View 引用,优化器可能也看不到东西。我有过这样的经历,因为加入的 View 所做的比查询需要的更多——有时,来自所有使用的 View 的查询被压缩成一个运行得更好的查询。

  • 我建议创建您的 View ,并比较 EXPLAIN 计划以确保您至少获得相同的性能。在评论该方法之前,我需要查看您用于填充 TYPE 的代码,但这听起来本质上是一个派生表......

    您可能会从使用物化 View 中受益,但众所周知,它们支持的内容受到限制。

    关于sql - 是否有理由不在 Oracle 中使用 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6711175/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com