UML软件工程组织

Oracle 用于OLTP和DSS混合系统下的调整和优化原则
来源:时代朝阳数据库技术中心 
 许多用户希望OLTP 系统和DSS系统放在同一台机器上使用同一个实例。这是可以理解的,因为将数据从 OLTP 系统拷贝到 DSS 系统可能会影响数据的准确性。但是,如果希望将这两个系统放在一起,使它们两全地保持良好的状态,是非常难以做到的,因为这两个应用会竟争使用资源,它们的目标是矛盾的。

  Oracle 强烈建议将这两个应用分开,在需要时从OLTP系统向 DSS系统传送数据。

  OLTP 与DSS混合系统存在以下问题:

  • OLTP 系统的特征是用索引搜索,而 DSS 系统的特征是大量的全表扫描。
  • OLTP 系统需要比 DSS系统更多的索引,而且需要的索引类型也不一样。OLTP 需要B-tree 索引和反转键索引,而 DSS需要bitmap 索引和组织索引表。
  • OLTP 系统需要多个小尺寸的回退段,而 DSS 系统需要少量的大尺寸的回退段。
  • OLTP 不应使用并行查询,而DSS系统需要。
  • DSS 系统需要数据紧密存储,从而 PCTFREE 的值应为 0,而 OLTP 系统的 PCTFREE 值决不能是0,否则会产生大量的行迁移和行链。
  • OLTP 应当使用共享的代码和捆绑变量,而 DSS 应当使用实际文本(literal variable)和提示。当查询不使用捆绑变量时,基于成本的优化器使用直方图统计来优化。OLTP 应用应当使用捆绑变量,因为对 OLTP 来说,直方图统计数据收集是浪费时间和资源,而 DSS 应用则不然。

  对于一定要使用混合应用的系统,应当遵从如下的建议:

1. 在 OLTP 应用的低峰运行大的 DSS 应用,例如周末和夜间等时间。

2. 多线索服务器适合于 OLTP 应用,不适合于 DSS应用。

3. 应当为不同的应用配置不同的回退段。

  • 为OLTP 系统配置多个小尺寸的回退段,在切换到 DSS 应用时将其脱机。
  • 为DSS 系统配置少量的大尺寸的回退段,在切换到 OLTP应用时将其脱机。

4. 用两套初始化参数文件。一套针对 OLTP 应用,另一套针对 DSS应用,而且应当在这两种应用切换时重新关闭和启动系统,以便使新的参数文件生效。

  • 在使用 OLTP 应用时,以下参数需要更高的值:SHARED_POOL_SIZE、LARGE_POOL_SIZE、DB_BLOCK_BUFFERS、以及SORT_AREA_SIZE。
  • 在使用 OLTP 应用时,应当将 PARALLEL_MIN_SERVERS 和 PARALLEL_MAX_SERVERS 设为 0 以防止并行处理。

5. 多套profile文件。在使用 OLTP 应用时,应当限制大表的全表扫描。这可以设置 profile 来限制LOGICAL_READS_PER_CALL 或 CPU_PER_CALL,并将这些 profile 赋给用户。在使用 OLTP 应用时,应当将这些值设回恰当的数。

 

版权所有:UML软件工程组织