【Ebs】-日记账导入优化

日记账导入优化

参考文档:R12: Improving Performance of General Ledger and Journal Import (Doc ID 858725.1)

优化程序

主要优化对象为GCC表和gl_balance表,理论上对于以下程序性能有提升

日记账导入:GLLEZL

批量分配:GLAMAS

过账程序:GLPPOS

检查优化项

数据库初始化文件Init.ora

  • 文档:Document 174605.1
  • bde_chk_cbo.sql
  • Document 396009.1

并发请求控制设置

  • GL:一次处理的记录数

    日记账导入和批量分配程序可以在内存中保留的日记行越多,它们将运行得越快

    • 默认是1000行日记账行
    • 设置的越大内存占用越高
  • GL:存档日记账导入数据

    设置成Yes的话,在日记账导入程序完成之后会把gl_interface的数据归档到GL_INTERFACE_HISTORY,这样会使导入程序变慢

  • GL:内存中的账户数

官方优化程序

建议定期运行

  • 程序 - 维护汇总模板

    • 更新汇总账户信息
  • 程序 - 优化程序

    • 删除或者创建coa中维护的段值相关的索引项

      在coa段值定义界面中如果勾选了索引选项,运行该优化程序则会为每个段值创建索引

      如果将coa段索引标记取消,运行该程序则会将该段值对应的索引删除

      如何判断?
      如果段里面有很多不同的段值,则标记为索引,如果只有极少不同段值,建议取消索引标记

    • 统计收集数据

      • gl_code_combination
      • gl_balance
      • 建议每个期间运行一次或者新增coa段值、更新汇总模版,新建coa结构时运行

其他建议

  • 减少导入时的批次数

    每次运行日记账导入请求,则会遍历GL_interface表,增加运行时间

    • 相同数据量 少批多行性能优于多批次少行
    • gl_interface表清理
  • 关闭尽可能多的期间

  • 禁用账户组合的动态插入

  • 保持统计数据信息是最新的

索引优化

  • gl_code_combination

    • 增加复合索引

      • 筛选性最好的段值放在先导列

        DECLARE
        v_SegNum VARCHAR2(9);
        v_FreqCount NUMBER;
        BEGIN
        FOR i IN 1..30
        LOOP
        EXECUTE IMMEDIATE
        'SELECT COUNT(DISTINCT SEGMENT'||TO_CHAR(i)||')
        FROM gl_code_combinations'
        INTO v_FreqCount ;
        IF v_freqCount <> 0 THEN
        DBMS_OUTPUT.PUT_LINE(
        'SEGMENT'||TO_CHAR(i)||' Frequency = '||TO_CHAR(v_FreqCount));
        END IF;
        END LOOP;
        END;

      • 段值如果存在少量不同值 建议取消段值定义上的索引选项

      • 复合索引名字只能是GL_CODE_COMBINATIONS_CAT,因为官方程序中hint使用了这个名字

      • 尽量避免出现不同索引 前导列是相同的列名

    • 统计数据收集

  • GL_INTERFACE

    • 增加复合索引

      • 同gcc表新增的索引列一样
      • 名字必须采用GL_INTERFACE_CAT

检查客户化项

  • gl相关表的客户化index
  • gl相关表的客户化triggers
原文地址:https://www.cnblogs.com/sunlingC/p/14277580.html