Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 创建视图&;数据库中的性能。,_Oracle - Fatal编程技术网

Oracle 创建视图&;数据库中的性能。,

Oracle 创建视图&;数据库中的性能。,,oracle,Oracle,如果创建数千个视图,是否会影响数据库性能。我的意思是,在oracle中创建数千个视图有什么问题吗。请解释一下,因为我是这方面的新手…我正在使用oracle…视图与创建它的select一样难以运行,但oracle负载平衡和单选不会损害数据库。如果您有数千个并发选择,那么您可能会遇到问题。视图的数量并不重要,但重要的是它们有多重以及您使用了多少 实际上,您需要显示视图代码,并告诉您实际要做什么 Oracle视图是 复杂查询,必须与一起使用 照顾以下是关键事实 记住: 视图并不是为了改进SQL 演出当

如果创建数千个视图,是否会影响数据库性能。我的意思是,在oracle中创建数千个视图有什么问题吗。请解释一下,因为我是这方面的新手…我正在使用oracle…

视图与创建它的select一样难以运行,但oracle负载平衡和单选不会损害数据库。如果您有数千个并发选择,那么您可能会遇到问题。视图的数量并不重要,但重要的是它们有多重以及您使用了多少

实际上,您需要显示视图代码,并告诉您实际要做什么

Oracle视图是 复杂查询,必须与一起使用 照顾以下是关键事实 记住:

视图并不是为了改进SQL 演出当你需要的时候 封装SQL,您应该将其放置在 在存储过程内部,而不是 使用视图。视图隐藏了复杂性 基础查询的 对于没有经验的程序员来说更容易 和最终用户制定查询。 视图可用于使用优化查询 提示,前提是视图是 总是在适当的上下文中使用


这些视图的简单存在不应该损害性能。但是,一旦开始使用这些视图,可能会对性能产生一些负面影响。Oracle试图“记住”它看到的每个语句的计划,但它通过比较源代码(SQL)来比较语句。您的数千个视图都将以不同的名称命名,因为您不能有多个具有相同名称的视图,因此每次使用其中一个视图时,Oracle都必须对SQL进行完整的解析,即使它是与SQL一样基本的

SELECT * FROM VIEW_1;

所有这些重新解析肯定需要一些时间

这些观点有什么不同?我认为退一步考虑其他可能性可能是个好主意。我要问的问题包括

  • 在这里要完成什么
  • 为什么需要数千种不同的视图
  • 是否有其他方法可以在不创建所有这些视图的情况下完成需要完成的工作
  • 我不知道1和2的答案,但我有理由相信3的答案是“是”


    祝你好运。

    如果优化器足够聪明,视图不应该影响性能。我记得在其他DB引擎中,视图会损害性能。正如在许多性能案例中一样,我建议衡量您的具体案例。

    您的数千个视图是否可能本质上是相同的视图,但针对不同的用户?-1不同意-视图并不适合每种情况,可能会有问题,但用存储过程替换它们更糟糕。至少从长远来看,甲骨文有机会对其进行优化。需要确定为什么这么多视图被认为是必要的-在某些情况下,如果唯一改变的是WHERE子句中的一些谓词,那么可以将视图与会话上下文变量结合起来。
    SELECT * FROM VIEW_2;