【发布时间】:2015-01-23 04:34:39
【问题描述】:
我正在开发一个 oracle 11g 数据库。系统 ATM 有许多与交易相关的记录的历史表。我们遇到的问题是交易历史信息记录跨越多个表。例如,TransactionDetail 表具有版本列,TransactionQuestions 表具有自己的版本列。当需要检索历史信息时,使用大量视图将这些数据从数据库中取出 - 它非常慢,并且由于版本和许多连接的大小和复杂性,我们不断发现错误。
我们正在考虑采取的方法是将数据保存在多个历史表中,唯一的目的是稍后加入海量视图中,将每个事务的整个系统状态保存到具有大量列的海量表中,放置索引在 PK 和 - 问题解决。
这将为我们解决性能问题,因为无需聚合即可检索数据。
在我看来,表方法的最大缺点是如果 SQL 视图结构中存在错误,则可以修复它并且实际历史数据不会受到影响,如果机制中存在错误(本质上将从视图移动到代码)数据到历史表 - 数据损坏并且无法修复。
与合并多个历史表数据的视图相比,海量历史表还会带来哪些其他缺点?
【问题讨论】:
标签: sql database oracle architecture sql-view