29.03.2007, 19:07 | #1 |
Участник
|
Тормозит запрос
Подскажите почему возникают тормоза вот в этом месте Как избавиться от этого, queryRun оптимизирован, но все равно возникают тормоза. while( _queryRun.next() ) Выборка идет по таблице ProdBoom (n:1) [ProdBOM.ProdId=ProdTable.ProdId] ProdTable (n:1) [ProdTable.InventRefId = ProdTable.ProdId] ProdTable В Качестве критерия указывается значение в поле Номер ссылки во втором производственном заказе [ProdTable.InventRefId] в _queryRun firstfast = false firstonly=false Последний раз редактировалось FirstOnly; 29.03.2007 в 19:15. |
|
29.03.2007, 19:36 | #2 |
NavAx
|
Телепаты в отпуске.
Смотрите план запроса. |
|
29.03.2007, 21:25 | #3 |
Banned
|
В таблице ProdTable нет индекса по InventRefId. Может быть, Вам ProdTable.CollectRefId сойдет (идентификатор самого главного производственного заказа)?
|
|
30.03.2007, 08:56 | #4 |
Участник
|
К сожалению не сойдет. В номер ссылки содержится номер заказа (Заказа из модуля расчеты с клиентами). И фильтровать нужно по этому номеру.
|
|
30.03.2007, 14:09 | #5 |
NavAx
|
ну так добавьте индекс по ProdTable.InventRefId
|
|
07.04.2007, 15:26 | #6 |
Участник
|
План исполнения запроса:
SELECT A.PRODID,A.LINENUM,A.PRODLINETYPE,A.BOMCONSUMP,A.ITEMID,A.BOMQTY,A.DIM1,A.DIM2,A.DIM3,A.DIM4,A.DIM5,A.ROUNDUP, A.ROUNDUPQTY,A.POSITION,A.QTYBOMCALC,A.REMAINBOMPHYSICAL,A.REMAINBOMFINANCIAL,A.QTYINVENTCALC,A.RESERVATION, A.INVENTTRANSID,A.RAWMATERIALDATE,A.REMAININVENTPHYSICAL,A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.INVENTREFTYPE, A.INVENTREFID,A.INVENTREFTRANSID,A.VENDID,A.UNITID,A.BACKORDERSTATUS,A.CALCULATION,A.QTYINVENTSTUP,A.QTYBOMSTUP, A.DEL_SCRAPTYPEID,A.BOMID,A.FORMULA,A.DEL_CONFIGID,A.BOMREFRECID,A.BOMQTYSERIE,A.ITEMBOMID,A.INVENTDIMID,A.REQPOID, A.REQPLANIDSCHED,A.SCRAPVAR,A.SCRAPCONST,A.CONSTANTRELEASED,A.RECVERSION,A.RECID,B.ITEMID,B.NAME,B.PRODGROUPID, B.PRODSTATUS,B.PRODTYPE,B.QTYSCHED,B.QTYSTUP,B.DLVDATE,B.STUPDATE,B.FINISHEDDATE,B.SCHEDSTART,B.SCHEDEND,B.HEIGHT, B.WIDTH,B.DEPTH,B.DENSITY,B.QTYCALC,B.REALDATE,B.RESERVATION,B.PRODPOSTINGTYPE,B.INVENTTRANSID,B.DIMENSION,B.DIMENSION2_, B.DIMENSION3_,B.INVENTREFTYPE,B.INVENTREFID,B.INVENTREFTRANSID,B.COLLECTREFLEVEL,B.COLLECTREFPRODID,B.BOMDATE, B.BACKORDERSTATUS,B.PRODPOOLID,B.PROFITSET,B.CALCDATE,B.REMAININVENTPHYSICAL,B.BOMID,B.DEL_CONFIGID,B.REQPLANIDSCHED, B.REQPOID,B.REFLOOKUP,B.PRODID,B.INVENTDIMID,B.PRODORIGID,B.PRODPOSITION,B.CREATEDDATE,B.CREATEDTIME,B.CREATEDBY, B.RECVERSION,B.RECID,C.ITEMID,C.NAME,C.PRODGROUPID,C.PRODSTATUS,C.PRODTYPE,C.QTYSCHED,C.QTYSTUP,C.DLVDATE,C.STUPDATE, C.FINISHEDDATE,C.SCHEDSTART,C.SCHEDEND,C.HEIGHT,C.WIDTH,C.DEPTH,C.DENSITY,C.QTYCALC,C.REALDATE,C.RESERVATION, C.PRODPOSTINGTYPE,C.INVENTTRANSID,C.DIMENSION,C.DIMENSION2_,C.DIMENSION3_,C.INVENTREFTYPE,C.INVENTREFID,C.INVENTREFTRANSID, C.COLLECTREFLEVEL,C.COLLECTREFPRODID,C.BOMDATE,C.BACKORDERSTATUS,C.PRODPOOLID,C.PROFITSET,C.CALCDATE,C.REMAININVENTPHYSICAL, C.BOMID,C.DEL_CONFIGID,C.REQPLANIDSCHED,C.REQPOID,C.REFLOOKUP,C.PRODID,C.INVENTDIMID,C.PRODORIGID,C.PRODPOSITION,C.CREATEDDATE, C.CREATEDTIME,C.CREATEDBY,C.RECVERSION,C.RECID FROM PRODBOM A,PRODTABLE B,PRODTABLE C WHERE (A.DATAAREAID='VRT') AND ((B.DATAAREAID='VRT') AND ((B.COLLECTREFLEVEL=1) AND (A.PRODID=B.PRODID))) AND ((C.DATAAREAID='VRT') AND ((((C.INVENTREFID=' 089641') OR (C.INVENTREFID=' 071192')) AND (C.INVENTREFTYPE=1)) AND (B.COLLECTREFPRODID=C.PRODID))) ORDER BY A.DATAAREAID,A.PRODID,A.LINENUM,A.RECID OPTION(FAST 8) |
|
07.04.2007, 16:20 | #7 |
Участник
|
|
|
07.04.2007, 17:15 | #8 |
Участник
|
|
|
07.04.2007, 17:30 | #9 |
Участник
|
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|