我有一个相当大的与订单管理相关的业务应用程序,其数据在 Oracle 数据库中。
所有数据都可以与订单相关。现在,数据量很大,表中有数百万条记录 - 从而减慢了我的应用程序 SQL 查询速度。
我正在计划我的主要“订单模式”的副本模式,比如“归档订单模式”。并编写 SQL 查询以将(旧订单)数据从主要模式移动到存档模式,一次一个(旧)订单。
但是 SQL 查询非常慢,并且移动(旧)订单的所有数据(跨这么多表)需要很长时间。
欢迎任何设计/方法/优化输入。
首先,正如其他人所指出的,订单管理表中的几百万行是没有意义的。即使是几亿行或数十亿行也不是挑战。我们毫不费力地管理具有更大订单管理表的 EBS。确保您使用 EBS 并发请求(而不是 DBA 工具)收集模式统计信息;尽管您可能会咨询您的 DBA 以重建索引。还要确保您已打补丁,因为 Oracle EBS 补丁通常包含不同的索引,以提高记录问题的性能。运行一些 AWS 统计数据甚至 SQL 跟踪来查找您的瓶颈并与 Oracle Support 合作。
接下来,不要使用 SQL 来归档种子表。你会遇到问题,然后甲骨文不会帮助你。相反,您应该做一些研究并使用 Oracle 的内置和支持的归档和清除过程。首先阅读 My Oracle Support 上的 Note 752322.1,它将指导您在订单管理中管理您的数据。