Oracle View限制

时间:2011-11-22 14:54:03

标签: oracle views

我正在将sybase存储过程转换为oracle视图。这是他们想要的,这不是我的第一选择。我的问题是: oracle视图有任何限制吗?列总数?你能为视图创建索引吗?由于我将在视图中创建子视图和连接视图,因此您可以对多少层视图进行限制? 感谢

3 个答案:

答案 0 :(得分:4)

  

oracle视图中是否有任何限制?   总列数?   您可以执行多少层视图

所有内容均包含在此处:http://docs.oracle.com/database/121/REFRN/GUID-685230CF-63F5-4C5A-B8B0-037C566BDA76.htm#REFRN0043

视图中的列数与表中的列数具有相同的限制。

  

您可以为视图创建索引吗?

不,你不能。但是,您可以创建一个可以编入索引的物化视图

答案 1 :(得分:3)

您在表格中限制为1000列。如果对观点有类似限制,我不会感到震惊。但是如果你要创建一个包含1000列的视图,那么你可能会做错了。

您无法在视图上创建索引,但可以在基础表上创建针对视图查询可以使用的索引。您可以索引物化视图,因为顾名思义,它们将数据具体化为单独的结构。但是,您必须处理刷新提交时的物化视图,这会增加事务开销,或者容忍陈旧数据并在某些时间表上刷新物化视图。

您可以拥有的视图层数没有限制。根据Oracle版本,视图的复杂性以及约束的存在等因素,您最终可能会强制Oracle执行额外的工作(即在视图层中加入其他查询不会导致最终查询实际需要)或者太复杂,以至于优化者找不到合适的计划。

答案 2 :(得分:1)

对视图的复杂性没有任何重大限制。

基于Oracle成本的优化器在确定如何使用基础表的索引对视图执行查询方面做了不错的(如果不可理解的)工作。

如果表现不够,您可以考虑查看物化视图。

执行此类项目的常用方法是使视图正常工作,然后使用EXPLAIN PLAN进行优化。