【问题标题】:Oracle materialized view will table DMLs performance be affected?Oracle物化视图会影响表DMLs的性能吗?
【发布时间】:2023-02-03 20:50:49
【问题描述】:

可能是转储问题。我只需要快速估算一下。

如果我在TableX 上创建materialized view。 插入TableX、更新TableX、从TableX 删除等的性能会下降还是不会对这些DMLs 的性能产生任何影响?

我想提高某些选择的性能,但如果 DMLs 因此受到一点影响,那将是一个交易破坏者。

【问题讨论】:

标签: oracle11g dml


【解决方案1】:

这将取决于您的物化视图配置为刷新的方式以及刷新频率。任何刷新选项都会有一些对系统的影响,因为你至少引入了一些新的负载,所以这是一个问题,即哪种负载形式对你的 DML 的影响最小。

  • 快速地刷新不应该有任何影响(至少没有人会注意到),但要进行测试以确保在运行 DML 时更新物化视图日志会产生一点点开销。尽可能使用这些,尤其是当父表有大量数据或处理大量 DML 事务时。快速刷新通常对整个系统的整体资源影响最低且最可预测。
  • 完全的刷新也不应该有任何影响,除非(像任何大查询一样)它们消耗太多计算资源并影响整个系统。它们不会给实际的 DML 添加任何开销。如果您出于某种原因不能使用快速刷新,请使用这些,但如果刷新本身有大量数据或高计算要求,请尝试限制刷新频率。与快速刷新相比,太多的完全刷新会提高整体事务率和重做日志滚动率。
  • 提交时刷新意志绝对地对 DML 有影响,因为更新 MV 所需的计算和 I/O 直接添加到父表上的 DML 事务。除非你对MV的实时更新要求非常严格,而且你的源数据变化不大,否则不要这样做。

这有点违反直觉,但如果你有快速刷新,那么尽可能频繁地运行它们实际上是有意义的(频率取决于你的源数据变化的速度和你的 MV 查询的资源密集程度)并保持数量每次刷新时更新尽可能小。这有助于防止刷新导致计算资源使用量激增。

【讨论】:

    猜你喜欢
    • 2013-07-30
    • 2023-03-26
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多