【问题标题】:Massive View vs History table海量视图与历史表
【发布时间】:2015-01-23 04:34:39
【问题描述】:

我正在开发一个 oracle 11g 数据库。系统 ATM 有许多与交易相关的记录的历史表。我们遇到的问题是交易历史信息记录跨越多个表。例如,TransactionDetail 表具有版本列,TransactionQuestions 表具有自己的版本列。当需要检索历史信息时,使用大量视图将这些数据从数据库中取出 - 它非常慢,并且由于版本和许多连接的大小和复杂性,我们不断发现错误。

我们正在考虑采取的方法是将数据保存在多个历史表中,唯一的目的是稍后加入海量视图中,将每个事务的整个系统状态保存到具有大量列的海量表中,放置索引在 PK 和 - 问题解决。

这将为我们解决性能问题,因为无需聚合即可检索数据。
在我看来,表方法的最大缺点是如果 SQL 视图结构中存在错误,则可以修复它并且实际历史数据不会受到影响,如果机制中存在错误(本质上将从视图移动到代码)数据到历史表 - 数据损坏并且无法修复。

与合并多个历史表数据的视图相比,海量历史表还会带来哪些其他缺点?

【问题讨论】:

    标签: sql database oracle architecture sql-view


    【解决方案1】:

    您是否考虑过创建materialized view?物化视图具有明显更好的存储特性,同时仍然允许规范化的表结构。他们有几个权衡,包括更高的磁盘使用率(基本上形式化了“海量历史表”)。这基本上创建了您的海量历史表,并让 oracle 完成将更改序列化到规范化表的繁重工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 2016-03-19
      • 2016-01-03
      相关资源
      最近更新 更多