我是java系统设计师。因为我们有很大的项目要做,所以 那些项目是没有网页的java api。
我设计创建通用流程引擎以支持所有项目 这个想法使用1个oracle模式,具有通用事务表。 和其他人控制路由表。
他们几乎完成了。但是DBA团队担心他会对1个架构维持非常大的请求。
1个原因是如果有问题就是某些表。他必须离线表空间才能修复。这是问题,因为所有项目都会受到影响。
我尝试通过project_code&和每个表的拆分数据来说服分区。 “要删除的月份数”。
Eaxmple partition:
PROJ1_05 PROJ1_06 PROJ1_07
PROJ2_05 PROJ2_06 PROJ2_07
并且所有事务表都将存储在其分区上。
所以,如果表空间的任何部分出现问题,那么他应该使某个分区脱机,而另一个使用相同表的项目应该可以服务
每天的交易量应该在每天10Meg左右。
这是个好主意吗? 如果我必须使用1个架构,那么策略是什么? 你有什么意见吗?
答案 0 :(得分:1)
在大多数情况下,在单个架构下工作不应该有任何问题。这实际上取决于您希望如何构建应用程序。如果您尝试跨不同客户复制相同类型的应用程序,则可以针对跨不同架构复制的相同结构进行案例处理,并将其放在一个架构中并根据客户处理安全性。
通过创建单独的表来对数据进行分区将使编码变得比它需要的复杂得多,并且可以让数据库执行它最擅长的处理数据集的工作。我会非常警惕这种做法。如果您拥有Oracle的一些企业许可,您可以进行表分区以提高性能,但单独的表听起来不错。
为什么要进入您的项目,以为您将定期离开表空间?如果项目设计得很好并且测试得很好,那么在生产时间内不应该经常需要使表空间脱机并在桌面上工作。应该预期和安排定期维护,而不是即时维护。
我会亲自为每种类型的数据设计使用1个schema / 1表,除非有一个非常有说服力的理由来复制结构并分离出不同的模式(法律或合同要求)。
至于给定数据负载的性能,您必须对其进行测试,以便能够通过调整了解您的实际结果和改进空间。