Oracle 创建视图&;数据库中的性能。,
如果创建数千个视图,是否会影响数据库性能。我的意思是,在oracle中创建数千个视图有什么问题吗。请解释一下,因为我是这方面的新手…我正在使用oracle…视图与创建它的select一样难以运行,但oracle负载平衡和单选不会损害数据库。如果您有数千个并发选择,那么您可能会遇到问题。视图的数量并不重要,但重要的是它们有多重以及您使用了多少 实际上,您需要显示视图代码,并告诉您实际要做什么 Oracle视图是 复杂查询,必须与一起使用 照顾以下是关键事实 记住: 视图并不是为了改进SQL 演出当你需要的时候 封装SQL,您应该将其放置在 在存储过程内部,而不是 使用视图。视图隐藏了复杂性 基础查询的 对于没有经验的程序员来说更容易 和最终用户制定查询。 视图可用于使用优化查询 提示,前提是视图是 总是在适当的上下文中使用Oracle 创建视图&;数据库中的性能。,,oracle,Oracle,如果创建数千个视图,是否会影响数据库性能。我的意思是,在oracle中创建数千个视图有什么问题吗。请解释一下,因为我是这方面的新手…我正在使用oracle…视图与创建它的select一样难以运行,但oracle负载平衡和单选不会损害数据库。如果您有数千个并发选择,那么您可能会遇到问题。视图的数量并不重要,但重要的是它们有多重以及您使用了多少 实际上,您需要显示视图代码,并告诉您实际要做什么 Oracle视图是 复杂查询,必须与一起使用 照顾以下是关键事实 记住: 视图并不是为了改进SQL 演出当
这些视图的简单存在不应该损害性能。但是,一旦开始使用这些视图,可能会对性能产生一些负面影响。Oracle试图“记住”它看到的每个语句的计划,但它通过比较源代码(SQL)来比较语句。您的数千个视图都将以不同的名称命名,因为您不能有多个具有相同名称的视图,因此每次使用其中一个视图时,Oracle都必须对SQL进行完整的解析,即使它是与SQL一样基本的
SELECT * FROM VIEW_1;
及
所有这些重新解析肯定需要一些时间
这些观点有什么不同?我认为退一步考虑其他可能性可能是个好主意。我要问的问题包括
祝你好运。如果优化器足够聪明,视图不应该影响性能。我记得在其他DB引擎中,视图会损害性能。正如在许多性能案例中一样,我建议衡量您的具体案例。您的数千个视图是否可能本质上是相同的视图,但针对不同的用户?-1不同意-视图并不适合每种情况,可能会有问题,但用存储过程替换它们更糟糕。至少从长远来看,甲骨文有机会对其进行优化。需要确定为什么这么多视图被认为是必要的-在某些情况下,如果唯一改变的是WHERE子句中的一些谓词,那么可以将视图与会话上下文变量结合起来。
SELECT * FROM VIEW_2;