Тема: InventSum
Показать сообщение отдельно
Старый 08.01.2010, 18:42   #1  
Alexanderrrr is offline
Alexanderrrr
Участник
Аватар для Alexanderrrr
 
54 / 19 (1) ++
Регистрация: 06.03.2009
Адрес: Саратов
InventSum
Доброго всем времени суток!

Решил обратиться за помощью к гуру акспапты.

sql 2000 axapta 3.0 sp5

после изменения механизма расчета аванса появились блокировки на таблице inventsum, в которой у нас всего 13 записей..(при одновременном расчете)
включив sql-трассировку, получаю вот:
Код:
252655 мс на 'EXECUTE+FETCH (execute, first chunk of data)': SELECT A.ITEMID,A.POSTEDQTY,A.POSTEDVALUE,A.DEDUCTED,A.RECEIVED,A.RESERVPHYSICAL,A.RESERVORDERED,A.ONORDER,A.ORDERED,A.QUOTATIONISSUE,A.QUOTATIONRECEIPT,A.DEL_CONFIGID,A.INVENTDIMID,A.CLOSED,A.REGISTERED,A.PICKED,A.AVAILORDERED,A.AVAILPHYSICAL,A.PHYSICALVALUE,A.ARRIVED,A.PHYSICALINVENT,A.CLOSEDQTY,A.LASTUPDDATEPHYSICAL,A.LASTUPDDATEEXPECTED,A.POSTEDVALUESECCUR_RU,A.PHYSICALVALUESECCUR_RU,A.RECVERSION,A.RECID FROM INVENTSUM A WITH( INDEX(I_174ITEMDIMIDX), UPDLOCK) WHERE ((DATAAREAID=?) AND ((ITEMID=?) AND (INVENTDIMID=?))) OPTION(FAST 1)
это только при расчете одной точки учета.

тормозит в методе
X++:
static InventSum find(ItemId            itemId,
                      InventDimId       dimId,
                      boolean           _forUpdate = false)
{
    InventSum  inventSum;
    ;
    if (_forUpdate)
    {
        inventSum.selectForUpdate(_forUpdate);
        if (appl.inventUpdateTTSControl().mustUseTTSSystem())
            inventSum.setConnection(appl.inventUpdateTTSControl().DBConnectionUpd());
    }

    if (itemId)
        select firstonly inventSum
            index hint ItemDimIdx
            where inventSum.itemId              == itemId    &&
                  inventSum.inventDimId         == dimId;

    return inventSum;
}
на селекте inventSum..

люди добрые, помогите

index hint убирал, не помогает..(
__________________
..в каждой программе есть хотя бы одна ошибка..