【问题标题】:Archiving (old) application data in (Oracle) Database在 (Oracle) 数据库中归档(旧)应用程序数据
【发布时间】:2013-02-15 00:28:24
【问题描述】:

我有一个相当大的与订单管理相关的业务应用程序,其数据在 Oracle 数据库中。

所有数据都可以与订单相关。 现在,数据量很大,表中有数百万条记录 - 从而降低了我的应用程序 SQL 查询速度。

我正在计划我的主要“订单模式”的副本模式,例如“归档订单模式”。 并编写 SQL 查询以将(旧订单)数据从主模式移动到存档模式,一次一个(旧)订单。

但是 SQL 查询非常慢,并且移动(旧)订单的所有数据(跨这么多表)需要很长时间。

欢迎任何设计/方法/优化输入。

【问题讨论】:

  • 如果您有适当的索引等,数据量不应该是您的应用程序的单个 prder 处理的主要问题。您是否确定了缓慢的位置和原因?分区合适吗?为什么要一次移动一张唱片,而不是一次移动,或者至少分批移动?
  • 我和@AlexPoole 在一起,我自己有一个 500GB 的数据库表,其中包含数十亿行,但是我的所有 SELECT 查询都在 20 毫秒内返回,因为我有良好的索引。如果您想存档数据以节省空间,那很好 - 但这样做是为了提高性能意味着您可能做错了什么。
  • 数百万行不被视为“巨大”。如今,它通常甚至不被认为是“大”。

标签: sql database oracle archive


【解决方案1】:

首先,正如其他人所指出的,订单管理表中的几百万行是没有意义的。即使是几亿行或数十亿行也不是挑战。我们毫不费力地管理具有更大订单管理表的 EBS。确保您使用 EBS 并发请求(而不是 DBA 工具)收集模式统计信息;尽管您可能会咨询您的 DBA 以重建索引。还要确保您已打补丁,因为 Oracle EBS 补丁通常包含不同的索引,以提高记录问题的性能。运行一些 AWS 统计数据甚至 SQL 跟踪来查找您的瓶颈并与 Oracle Support 合作。

接下来,不要使用 SQL 来归档种子表。您遇到问题,然后 Oracle 不会帮助您。相反,您应该做一些研究并使用 Oracle 的内置和支持的存档和清除过程。首先阅读 My Oracle Support 上的说明 752322.1,它将指导您在订单管理中管理您的数据。

【讨论】:

  • Wolf> 是否有直接链接到:Note 752322.1 不确定如何访问它。
  • @Jasper 您需要一个Oracle Support 帐户才能访问该文章。如果您的电子商务套件得到支持,您应该有一个帐户。您肯定想要一个,如果不访问 MOS 上的 Oracle 知识库,我无法想象支持 Oracle 应用程序。但我想重申,Oracle 应用程序中有内置的归档和清除流程,可以管理所有依赖项并维护您的数据完整性。
  • Wolf > 我猜 DBA 可以访问此类 Oracle 支持帐户。我不是一个,也没有它,所以无法阅读。我希望有人也能在公开的地方发布这些信息。我会在这些线上搜索。
  • 如果您的组织当前与 Oracle 签订了支持合同,那么您只需要 CSI(客户支持标识符)即可在 My Oracle Support 上创建一个帐户。通常分析师、开发人员、超级用户和 DBA 会有账户;所以你也应该被允许。询问您的部门经理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2012-09-11
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
相关资源
最近更新 更多