首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在oracle中创建非实例化视图需要大量的时间和CPU。

在oracle中创建非实例化视图需要大量的时间和CPU。
EN

Stack Overflow用户
提问于 2013-07-20 09:00:57
回答 1查看 467关注 0票数 0

我正在将应用程序从Access迁移到Oracle,并且遇到了一个奇怪的问题。所以我们有一个常规的oracle模式--没什么特别的。在该模式的顶部,我创建了许多视图-大约15个。这些视图相互使用,并且依赖关系树可以很深-我认为最多6-8个级别。

所以现在我遇到了一个问题,当我无法创建另一个视图时--当我执行'create or replace view‘语句时,oracle服务器上的CPU会占用50%的时间,而且会持续很长时间。视图现在处于这样一种状态,从这些视图中选择数据可能需要时间,但问题出现在“create”语句中。我没有使用'select * ...‘在视图和有问题的视图中仅依赖于另外两个。

我在SQL Server中使用Oracle 10g Enterprise v10.2,我熟悉事件探查器,可以执行跟踪、查看模式锁,但我对Oracle了解不多。

感谢您的任何提示。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-07-21 00:59:33

视图引用视图引用视图在我看来是非常不必要的。我知道我们都应该赞成“不要重复你自己”,但DRY是一个指导原则,而不是铁的规则。它的目的当然不是为了在数据库上下文中如此紧凑地应用,以至于什么都不能编译。

因此,请尝试分离所有视图,以便每个视图只引用FROM子句中的表。这应该可以解决您的问题,并允许您在代码方面取得进展。

您可以在以后随时查看情况。视图的巧妙之处在于它只是一个界面。如果你想重构一些视图,用比你所能做到的更少的视图替换表格(除非你重新引入编译挂起)。

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

https://stackoverflow.com/questions/17757599

复制
相关文章

相似问题

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