Участник
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
|
Форма тормозит...
Странные вещи тут наблюдаю...
Заметил что в строках журнала инвентаризации очень медленно происходит сортировка по номеру партии - в журнале 760 строк, сортировка происходит порядка 3-х минут. Заинтересовавшись такими тормозами включил трассировку SQL запросов и выяснил что тормозной запрос выглядит следующим образом:
PHP код:
SELECT A.JOURNALID,A.LINENUM,A.TRANSDATE,A.VOUCHER,A.JOURNALTYPE,A.ITEMID,
A.QTY,A.COSTPRICE,A.PRICEUNIT,A.COSTMARKUP,A.COSTAMOUNT,A.SALESAMOUNT,
A.INVENTTRANSID,A.INVENTTRANSIDFATHER,A.LEDGERACCOUNTIDOFFSET,
A.INVENTONHAND,A.COUNTED,A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,
A.DEL_LOG,A.BOMLINE,A.DEL_POSTED,A.DEL_CONFIGID,A.INVENTTRANSIDRETURN,
A.INVENTDIMID,A.TOINVENTDIMID,A.EMPLID,A.ASSETTRANSTYPE,A.PROJTAXGROUPID,
A.PROJSALESCURRENCYID,A.PROJTAXITEMGROUPID,A.PROJUNITID,A.INVENTREFTYP
E,A.INVENTREFID,A.INVENTREFTRANSID,A.SCRAPTYPEID_RU,A.DEL_REPORTID_RU,A.
DEL_OFFSESSIONID_RU,A.DESCRIPTION,A.MODIFIEDDATE,A.MODIFIEDTIME,A.MODIFIE
DBY,A.MODIFIEDTRANSACTIONID,A.CREATEDDATE,A.CREATEDTIME,A.CREATEDBY,A.C
REATEDTRANSACTIONID,A.RECID,B.INVENTDIMID,B.INVENTBATCHID,B.WMSLOCATION
ID,B.WMSPALLETID,B.INVENTSERIALID,B.INVENTLOCATIONID,B.CONFIGID,B.INVENTSIZ
EID,B.INVENTCOLORID,B.INVENTGTDID_RU,B.RECID,C.ITEMGROUPID,C.ITEMID,C.ITEM
NAME,C.ITEMTYPE,C.PURCHMODEL,C.HEIGHT,C.WIDTH,C.SALESMODEL,C.COSTGRO
UPID,C.PRIMARYVENDORID,C.NETWEIGHT,C.DEPTH,C.UNITVOLUME,C.BOMUNITID,C.D
ENSITY,C.DEL_SCRAPTYPEID,C.DIMENSION,C.DIMENSION2_,C.DIMENSION3_,C.COST
MODEL,C.USEALTITEMID,C.ALTITEMID,C.INTRACODE,C.DEL_COVPERINVENTLOCATIO
N,C.PHANTOM,C.INTRAUNIT,C.BOMLEVEL,C.BATCHNUMGROUPID,C.AUTOREPORTFINI
SHED,C.ORIGCOUNTRYID,C.STATISTICSFACTOR,C.ALTCONFIGID,C.STANDARDCONFI
GID,C.DEL_CONFIGACTIVE,C.ABCTIEUP,C.ABCREVENUE,C.ABCVALUE,C.ABCCONTRIB
UTIONMARGIN,C.COMMISSIONGROUPID,C.DEL_BARCODE,C.DEL_BARCODETYPE,C.C
ONFIGURABLE,C.SALESPERCENTMARKUP,C.SALESCONTRIBUTIONRATIO,C.SALESPRI
CEMODELBASIC,C.MINAVERAGESETTLE,C.NAMEALIAS,C.GROSSDEPTH,C.GROSSWIDT
H,C.GROSSHEIGHT,C.STANDARDPALLETQUANTITY,C.QTYPERLAYER,C.SORTCODE,C.
CONFIGSIMILAR,C.SERIALNUMGROUPID,C.DIMGROUPID,C.MODELGROUPID,C.TAXPAC
KAGINGQTY,C.DEL_TEMPLATE,C.WMSPALLETTYPEID,C.ORIGSTATEID,C.STOPEXPLOD
EPRICE,C.WMSPICKINGQTYTIME,C.TARAWEIGHT,C.PACKAGINGGROUPID,C.SCRAPVAR
,C.SCRAPCONST,C.STANDARDINVENTCOLORID,C.STANDARDINVENTSIZEID,C.ITEMDI
MCOMBINATIONAUTOCREATE,C.ITEMDIMCOSTPRICE,C.ALTINVENTSIZEID,C.ALTINVEN
TCOLORID,C.GROSSWEIGHT_RU,C.PACKING_RU,C.INVENTGROUPID_1,C.INVENTGRO
UPID_2,C.INVENTGROUPID_3,C.INVENTGROUPID_4,C.BASETYPE,C.SEASONTYPE,C.B
RANDID,C.PRODUCER,C.LOWESTSTOREQTY,C.HIGHESTSTOREQTY,C.INVENTITEMBA
RCODEID,C.INVENTBIGSIZETYPE,C.INVENTCLASSIFIERID,C.LOADCOUNTRY,C.MODIFIE
DDATE,C.MODIFIEDTIME,C.MODIFIEDBY,C.MODIFIEDTRANSACTIONID,C.CREATEDDATE
,C.CREATEDTIME,C.CREATEDBY,C.CREATEDTRANSACTIONID,C.RECID
FROM INVENTJOURNALTRANS A,INVENTDIM B,INVENTTABLE C
WHERE ((A.DATAAREAID='dom')
AND (A.JOURNALID='Жр00002099'))
AND ((B.DATAAREAID='dom')
AND (A.INVENTDIMID=B.INVENTDIMID))
AND ((C.DATAAREAID='dom')
AND (A.ITEMID=C.ITEMID))
ORDER BY B.DATAAREAID DESC,B.INVENTBATCHID DESC OPTION(FAST 1)
Проверил план выполнения - никаких fullscan, никаких scan вообще нет - в общем ничего подозрительного. Проверил индексы на таблицах - в общем то не увидел причин для таких тормозов...
Почесал тыковку и скопировал этот запрос в MS SQL Query Analizer и ужаснулся - запрос выполняется там порядка 11 минут!
Так как в запросе ничего подозрительного кроме OPTION (FAST 1) не обнаружил, то убрал этот аппендикс из запроса и получил время выполнения.... 1 секунду!
Отсюда возникает ВОПРОС: КАКОГО Х...????
Неужели форма Аксапты использует OPTION (FAST 1) (как я понимаю аналог firstfast в запросах аксапты) для обновления своего содержимого??? Как этого можно избежать?
|