优化Informix中的过程

时间:2017-06-07 02:54:06

标签: sql database informix

我需要优化以下程序。语法应该在Informix中。 此处需要进行表更新以进行顺序更新。它看起来非常大。可以进行优化。

CREATE OR REPLACE PROCEDURE ENTRY() LANGUAGE SQL

BEGIN ATOMIC

DECLARE record integer;
DECLARE txaa_id bigint;
DECLARE id bigint;
DECLARE createDatetimed timestamp;
DECLARE idPlus bigint;

set record = 0;--
set txaa_id = 0;--
set id = 0;--
set idPlus = 0;--
set createDatetimed = null;--


FOR v_row1 as select distinct txaa_id from finalBaseData
DO
        FOR v_row2  as select txsa_id , finalBaseData.txaa_id , finalBaseData.createdatetime from  tx_status_audit,finalBaseData where tx_status_audit.txaa_id  = v_row1.txaa_id and tx_status_audit.txaa_id = finalBaseData.txaa_id and tx_status_audit.cdts = 'OUT' order by tx_status_audit.create_datetime desc fetch first 1 rows only

        DO
        set record = record + 1;

                IF ( record = 1)
                THEN
                set id = v_row2.txsa_id;
                set idPlus = id + 1;
                set txaa_id = v_row2.txaa_id;
                set createDatetimed = v_row2.createdatetime;
                END IF;
        END FOR;

        insert into tx_status_audit values (idPlus,'CMPT',txaa_id,'HWNG',createDatetimed);
        set record = 0;
        set idPlus = 0;
        set txaa_id = 0;
        set createDatetimed = null;
END FOR;
END;

0 个答案:

没有答案