Oracle EBS作为一款打包好的ERP应用产品,绝大多数情况下是无法通过修改程序来实现优化目的。因而对于多数人而言,提到优化往往意味着成本,意味着投入,比如购买更好更多地硬件,设计N层(通常是两层,数据库和Apps分开)架构,通过BI将报表负担和日常业务剥离开来,上点层次的企业或许可以考虑弄个高可用性方案(RAC/DG)等等,这些投入从某种意义上来说,是昂贵的。很多没有想通的用户,往往在3年、5年这些坎上活得非常痛苦,好不容易磨合的差不多了,可偏偏这系统似老牛破车慢得不行了。等想通这个环节了,又可以迎来新的春天。

我们知道,经过优化的OLTP应用,毫无疑问可支持TB级的数据量,但是这种优化是需要一定功夫的。Oracle EBS宣称其本身便是经过优化的,这是常规而言,实际应用下来,却还有不小的调整余地。如何在当前的IT预算之内,做出显著的性能提升呢?其实从DBA的角度来看,还是有一些免费的实用的优化方案可供选用的:

  1. Purging/Archive,清理或归档过期数据。Oracle EBS内置了很多过期数据删除程序,比如删除过期工作流数据、日志、接口表数据等。11i中有将近214个类似程序,R12中约有260个。可以在Purge Portal配置一些常规的清理/归档程序。
  2. Partition,数据表分区。合理的分区,可以优化大多数查询语句访问路径,减少备份、恢复时间,更合理的分配存储空间。比如总帐数据按会计期间进行分区,工作流数据按类型进行分区等。
  3. ILM,信息生命周期管理。Oracle ILM方案是免费的,可以通过APEX提供一个图形化的助理界面。所谓生命周期是指数据按照时间线索区分的重要性分级,比如三年前的数据,本月的数据等,将一些很久以前的基本不访问但是又必须保留的数据存放到相对廉价的存储设备上。

Oracle EBS中已经对于某些类型的表进行了分区,还有一些则提供了备选的分区方案(比如工作流相关表,参考《工作流之大表分区》),这些都是常见的情形。每家企业情况不同,某一类数据在一些企业里数据量很小,但是在另一些企业里却极大,这时就需要自行分析功能和相关表结构,针对数据访问特点进行分区。一般而言,一个表的数据如果超过了2G,应当开始考虑一下分区方案。

Oracle ILM方案向对于很多第三方解决方案而言,虽然简单了些,但是无需额外费用。作为代价之一,Oracle EBS没有现成的解决方案,所以也需要技术顾问自行分析功能特点将数据进行分类,这是有点难度的工作。

在这些方面,一个不了解Oracle EBS产品的DBA很难提供有针对性的优化建议,所以技术顾问们,或许可以在这个领域深入一把。