SQL中的查询优化

问题描述 投票:0回答:2

我必须优化几个查询的物理设计。我尝试了多种技术,例如索引或群集,但是在大多数查询中,就一致获取而言,最佳选择是创建实例化视图。有什么理由不选择实体化视图来优化查询吗?因为如果我们仅使用实例化视图就可以优化所有查询,那么一切都会变得更加容易和快捷。

sql oracle optimization view
2个回答
1
投票

您可以使用实例化视图进行优化。以我的经验,它们有一个主要缺点:时间安排。实例化视图并非完全在同一时间更新。

结果,您认为可能相关的其他表可能缺少行。作为一个简单的示例,您可能具有从T1到T2的外键关系。但是,T2在T1之前实现。然后,当T1实现时,某些外键值可能会丢失。我花了很多时间来处理由此引起的问题。有多种方法可以对此进行调整。例如,所有行都可以具有创建日期,而物化视图可以仅将行限制为在前一个小时边界之前已创建或更新的行。

在性能和维护方面还有其他问题。例如,您的数据库负载可能转移到实现视图。否则,由于基础架构更改,视图可能会失败。但是,一旦有了适当的流程,您可能会发现这些流程非常易于管理。


0
投票
对于像OLTP这样的应用程序,这是没有意义的,因为查询不会读取大量数据。
© www.soinside.com 2019 - 2024. All rights reserved.