Добрый день всем!
Помогите пожалуйста оптимизировать программу. Как-то неправильно я делаю последний select, т.к. время выборки неоправданно большое. Кто-то знает в чем причина и как нужно делать правильно?
Code:
* Журнал изменений
GV_CHANGENR = 0.
* Выполняется 5 сек
WHILE GV_CHANGENR = 0.
GV_DATBONUS = GV_DATBONUS - 1. " Еще минус 1 день
SELECT SINGLE CHANGENR
INTO GV_CHANGENR
FROM CDHDR
WHERE UDATE = GV_DATBONUS.
ENDWHILE.
* Выполняется 10 мин
SELECT CHANGENR TABNAME TABKEY FNAME VALUE_NEW
INTO TABLE GT_CDPOS
FROM CDPOS
WHERE TABNAME = 'ZBUT0000000001'
AND FNAME = 'ZZAOUCOAUO'
AND VALUE_NEW = 'X'
AND CHANGENR > GV_CHANGENR.
* Выполняется 3 часа
SELECT CDHDR~CHANGENR CDHDR~UDATE "GT_CDPOS-TABKEY
INTO TABLE GT_CDHDR
FROM CDHDR
FOR ALL ENTRIES IN GT_CDPOS
WHERE CDHDR~CHANGENR = GT_CDPOS-CHANGENR.