首页 > 解决方案 > SQL中的查询优化

问题描述

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

标签: sqloracleoptimizationview

解决方案


您可以使用物化视图进行优化。根据我的经验,它们有一个主要缺点:时间。物化视图并非全部同时更新。

因此,您认为可能相关的不同表可能会丢失行。举个简单的例子,你可能有一个从 T1 到 T2 的外键关系。但是,T2在 T1之前实现。然后,当 T1 物化时,一些外键值可能会丢失。我花了很多时间来处理由此引起的问题。

有一些方法可以对此进行调整。例如,所有行都可以具有创建日期,而物化视图可以将行限制为仅在前一小时边界内创建或更新的行。

在性能和维护方面还有其他问题。例如,您的数据库负载可能会转向物化视图。或者视图可能由于底层架构更改而失败。但是,一旦您制定了流程,您可能会发现这些流程非常易于管理。


推荐阅读