客制的出货功能非常慢

针对客制化的杂项出库功能进行性能优化,通过调整SQL查询逻辑显著提升获取可用库存量的速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客制的杂项出库功能非常慢,初步测试后的原因如下:

 因为精细到每一片磊晶片,数据量增长非常快,期初+第一个月的数据量就达到500w。

导致有些验证程序非常缓慢。

例一:

DECLARE
   v_ava_qty NUMBER;
BEGIN
   v_ava_qty := inv_item_inq.get_available_qty(p_organization_id   => 83,
              p_inventory_item_id => 1317,
              p_revision          => NULL,
              p_subinventory_code => 'B01',
              p_locator_id        => 15,
              p_lot_number        => 'BEHA1MX-TP1B331A01',
              p_cost_group_id     => -1,
              p_revision_control  => 'FALSE',
              p_lot_control       => 'TRUE',
              p_serial_control    => 'FALSE');
   dbms_output.put_line(v_ava_qty);
END;

出货时,需要检查可用量>=出货量。

使用这个程序获得可用量,非常慢,这个在开发环境中,因为数据量比较少的原因,没有发现这个程序居然那么慢。

 

后面改成:

    SELECT SUM(moq.transaction_quantity)
      INTO p_onhand_qty
      FROM mtl_onhand_quantities moq
     WHERE moq.organization_id = p_inv_org_id
       AND moq.subinventory_code = p_subinv
       AND nvl(moq.locator_id, -1) = nvl(p_locator_id, -1)
       AND moq.inventory_item_id = p_item_id
       AND moq.lot_number = p_lot_number;
 
    SELECT SUM(mr.primary_reservation_quantity)
      INTO p_res_qty
      FROM mtl_reservations mr
     WHERE mr.organization_id = p_inv_org_id
       AND mr.subinventory_code = p_subinv
       AND mr.supply_source_type_id = 13
       AND nvl(mr.locator_id, -1) = nvl(p_locator_id, -1)
       AND mr.inventory_item_id = p_item_id
       AND mr.lot_number = p_lot_number;
 
    RETURN nvl(p_onhand_qty, 0) - nvl(p_res_qty, 0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值