|
10.08.2007, 10:17 | #1 |
Участник
|
SQL2000 vs SQL2005
Добрый день.
После перевода БД с SQL2000 на SQL2005 Enterprise Edition стала заметно медленее открываться форма Номенклатурных единиц(было 5 сек стало 50 сек). Кто-нибудь сталкивался с подобной проблемой? |
|
10.08.2007, 10:20 | #2 |
Участник
|
а если поставить писаться в базу хотя бы самые долгие запросы - какой самый долгий? сколько выполняется?
|
|
10.08.2007, 10:24 | #3 |
Участник
|
Запрос получаеться следующий:
Код: SELECT A.ITEMGROUPID,A.ITEMID,A.ITEMNAME,A.ITEMTYPE,A.PURCHMODEL,A.HEIGHT,A.WIDTH,A.SALESMODEL,A.COSTGROUPID,A.REQGROUPID,A.PRIMARYVENDORID,A.NETWEIGHT,A.DEPTH,A.UNITVOLUME,A.BOMUNITID,A.DENSITY,A.DEL_SCRAPTYPEID,A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.DIMENSION4_,A.DIMENSION5_,A.COSTMODEL,A.USEALTITEMID,A.ALTITEMID,A.STOPEXPLODE,A.DEL_COVPERINVENTLOCATION,A.PHANTOM,A.BOMLEVEL,A.BATCHNUMGROUPID,A.AUTOREPORTFINISHED,A.DEL_CONFIGACTIVE,A.ABCTIEUP,A.ABCREVENUE,A.ABCVALUE,A.ABCCONTRIBUTIONMARGIN,A.DEL_BARCODE,A.DEL_BARCODETYPE,A.SALESPERCENTMARKUP,A.SALESCONTRIBUTIONRATIO,A.SALESPRICEMODELBASIC,A.MINAVERAGESETTLE,A.NAMEALIAS,A.GROSSDEPTH,A.GROSSWIDTH,A.GROSSHEIGHT,A.SERIALNUMGROUPID,A.DIMGROUPID,A.MODELGROUPID,A.ITEMBUYERGROUPID,A.TAXPACKAGINGQTY,A.DEL_TEMPLATE,A.STOPEXPLODEPRICE,A.TARAWEIGHT,A.SCRAPVAR,A.SCRAPCONST,A.ITEMDIMCOMBINATIONAUTOCREATE,A.ITEMDIMCOSTPRICE,A.GROSSWEIGHT_RU,A.PACKING_RU,A.DKL_ITEMCLASS,A.DKL_BRANDID,A.DKL_ASSORTCODEID,A.DKL_WEIGHTITEM,A.DKL_DISCLIMIT,A.DKL_ITEMNAMECHEQUE,A.DKL_ITEMEXTCODE,A.DKL_INVENTGTDID,A.DKL_NORMLOSSGROUPID,A.DKL_INTERCOMPANYPRICE,A.DKL_INVENTCLASSVARID,A.FORECASTDMPINCLUDE,A.DEL_GROSSWEIGHT_RU,A.INTRASTATEXCLUDE_LT,A.INTRASTATWEIGHT_CZ,A.PKWIUCODE_PL,A.SADRATECODE_PL,A.RET_CHARSETID,A.MEL_OWN,A.MEL_DATENOVELTY,A.MEL_VENDACCOUNTROYALTY,A.MEL_NOVELTYCATEGORY,A.MEL_VENDCATEGORY,A.MEL_CHARVALUEDIM,A.MEL_CHARVALUEDIM2_,A.MEL_CHARVALUEDIM3_,A.MEL_CHARVALUEDIM4_,A.MEL_CHARVALUEDIM5_,A.MEL_LASTPURCHPRICE,A.MEL_FORCEDRATING,A.MEL_DATEFORCEDRATING,A.MEL_FORCEDRATINGDAYS,A.MEL_ITEMCATEGORYID,A.MEL_REQNOTRETURNDATE,A.MEL_REQISNOTRETURN,A.MEL_REQITEMGROUPID,A.RECID,B.ITEMID,B.MODULETYPE,B.UNITID,B.PRICE,B.PRICEUNIT,B.MARKUP,B.LINEDISC,B.MULTILINEDISC,B.ENDDISC,B.QUANTITY,B.LOWESTQTY,B.HIGHESTQTY,B.TAXITEMGROUPID,B.BLOCKED,B.DELIVERYTIME,B.INVENTLOCATIONID,B.MANDATORYINVENTLOCATION,B.STANDARDQTY,B.MARKUPGROUPID,B.PRICEDATE,B.PRICEQTY,B.ALLOCATEMARKUP,B.OVERDELIVERYPCT,B.UNDERDELIVERYPCT,B.CALENDARDAYS,B.DKL_LOCKED,B.RECID,C.ITEMID,C.MODULETYPE,C.UNITID,C.PRICE,C.PRICEUNIT,C.MARKUP,C.LINEDISC,C.MULTILINEDISC,C.ENDDISC,C.QUANTITY,C.LOWESTQTY,C.HIGHESTQTY,C.TAXITEMGROUPID,C.BLOCKED,C.DELIVERYTIME,C.INVENTLOCATIONID,C.MANDATORYINVENTLOCATION,C.STANDARDQTY,C.MARKUPGROUPID,C.PRICEDATE,C.PRICEQTY,C.ALLOCATEMARKUP,C.OVERDELIVERYPCT,C.UNDERDELIVERYPCT,C.CALENDARDAYS,C.DKL_LOCKED,C.RECID,D.ITEMID,D.MODULETYPE,D.UNITID,D.PRICE,D.PRICEUNIT,D.MARKUP,D.LINEDISC,D.MULTILINEDISC,D.ENDDISC,D.QUANTITY,D.LOWESTQTY,D.HIGHESTQTY,D.TAXITEMGROUPID,D.BLOCKED,D.DELIVERYTIME,D.INVENTLOCATIONID,D.MANDATORYINVENTLOCATION,D.STANDARDQTY,D.MARKUPGROUPID,D.PRICEDATE,D.PRICEQTY,D.ALLOCATEMARKUP,D.OVERDELIVERYPCT,D.UNDERDELIVERYPCT,D.CALENDARDAYS,D.DKL_LOCKED,D.RECID,E.ITEMID,E.DEL_CONFIGID,E.DEL_INVENTLOCATIONID,E.DEL_COVRULE,E.DEL_COVPERIOD,E.DEL_MININVENTONHAND,E.DEL_MAXINVENTONHAND,E.COUNTGROUPID,E.DEL_DELIVERYTIME,E.COUNTINGSTARTED,E.COUNTINGJOURNALID,E.INVENTDIMID,E.RECID,F.NAME,F.STATUS,F.RECID,G.ITEMID,G.BASEPRICE,G.FORECASTBASEPRICE,G.PRICECHANGED,G.MINRETAILMARGIN,G.RECID,H.ITEMID,H.STOPEXPLODE,H.PURCHABLEITEM,H.PRIMARYVENDORID,H.REQGROUPID,H.INVENTSTATUS,H.USEASSORTMATRIX,H.RECID,I.ITEMBARCODE,I.ITEMID,I.DEL_CONFIGID,I.INVENTDIMID,I.BARCODESETUPID,I.USEFORPRINTING,I.USEFORINPUT,I.DESCRIPTION,I.QTY,I.MODIFIEDDATE,I.MODIFIEDTIME,I.MODIFIEDBY,I.RECID FROM INVENTTABLE A(NOLOCK) ,INVENTTABLEMODULE B(NOLOCK) ,INVENTTABLEMODULE C(NOLOCK) ,INVENTTABLEMODULE D(NOLOCK) ,INVENTITEMLOCATION E(NOLOCK) ,DKL_BRANDTABLE F(NOLOCK) ,DKL_BASERETAILPRICES G(NOLOCK) ,DKL_INVENTTABLE H(NOLOCK) ,INVENTITEMBARCODE I(NOLOCK) WHERE (A.DATAAREAID='mhv') AND ((B.DATAAREAID='mhv') AND ((B.MODULETYPE=1) AND (A.ITEMID=B.ITEMID))) AND ((C.DATAAREAID='mhv') AND ((C.MODULETYPE=0) AND (A.ITEMID=C.ITEMID))) AND ((D.DATAAREAID='mhv') AND ((D.MODULETYPE=2) AND (A.ITEMID=D.ITEMID))) AND ((E.DATAAREAID='mhv') AND ((E.INVENTDIMID=' Axapta') AND (A.ITEMID=E.ITEMID))) AND ((F.DATAAREAID='mhv') AND (A.DKL_BRANDID=F.BRANDID)) AND ((G.DATAAREAID='mhv') AND (A.ITEMID=G.ITEMID)) AND ((H.DATAAREAID='mhv') AND ((H.INVENTSTATUS=1) AND (A.ITEMID=H.ITEMID))) AND ((I.DATAAREAID='mhv') AND ((I.INVENTDIMID=' Axapta') AND (A.ITEMID=I.ITEMID))) ORDER BY A.DATAAREAID,A.ITEMID OPTION(FAST 1) . ТОЧНО ТАКОЙ же запрос на сиквел2000 4 секунды Последний раз редактировалось Aleksey_M; 10.08.2007 в 11:13. Причина: Запрос выделил в [code] чтоб страницу не распирал. |
|
10.08.2007, 10:24 | #4 |
Гость
|
если написаешь, вообще ничего не отработает
|
|
10.08.2007, 10:33 | #5 |
Участник
|
Цитата:
Переход на SQL SERVER 2005 - есть ли смысл и безопасно ли? Что в сиквеле тебе моем ? (2000 или 2005) Что лучше: MS SQLServer 2000 или SQLServer 2005? |
|
10.08.2007, 11:30 | #6 |
злыдень
|
Сталкивался с торможением при открытии некоторых форм на 2005, проблема была в OPTION(FAST 1), лечили добавлением хинта отключающим этот критерий перед открытием формы.
Управление опциями SQL запроса Исправить поведение другими способами (статистика, индексы етк)- не получилось
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
10.08.2007, 12:48 | #7 |
Участник
|
Обновление индексов и статистики было произведено.
При просмотре плана выполнение запроса заметил следующее на SQL 2005 на таблице InventTable ожидаемое число строк равно 96000 , а на SQL2000 равно 50 |
|
10.08.2007, 12:59 | #8 |
Гость
|
а на самом деле их сколько?
|
|
10.08.2007, 13:13 | #9 |
Участник
|
96000 - кол-во записей в InventTable
|
|
10.08.2007, 13:20 | #10 |
Гость
|
так он фетчит у вас на клиента все записи. И оптимизация запроса к этому никаким боком
|
|
10.08.2007, 13:36 | #11 |
Участник
|
|
|
10.08.2007, 13:51 | #12 |
Участник
|
А может вы поменяли CacheLookup на таблице InventTable на EntireTable?
|
|
10.08.2007, 14:51 | #13 |
Участник
|
|
|
10.08.2007, 14:55 | #14 |
Участник
|
База данных и приложение (Axapta 3.0 SP1)одинаковые, а СУБД отличаются.
|
|
10.08.2007, 16:38 | #15 |
NavAx
|
много чего было, но такого не было.
__________________
И все они создания природы... |
|
13.08.2007, 09:56 | #16 |
Участник
|
УРААА! Проблема решилась следующим образом: На форме InventTable были есть две таблицы InventItemLocation(с полями ItemId, InventDimId) и InventItemBarcode(с полями ItemId, InventDimId). Обе таблицы были соеденины с InventTable(InnerJoin).После того как InventItemBarcode подсоеденил к InventItemLocation все заработало нормально. Интересно почему в SQL2000 все работало нормально.....?
|
|
13.08.2007, 11:38 | #17 |
Гость
|
это и называется "бубном".
На мой взгляд, таким мудрым образом MS дает заработать на хлеб с маслом таким классным парням, как мы с вами. |
|
13.08.2007, 11:57 | #18 |
Member
|
А Микрософту то за что досталось?
На форме InventTable в источниках данных таблицы InventItemBarcode в стандартной функциональности нет. Я б сказал, как это на самом деле называется...
__________________
С уважением, glibs® |
|
14.08.2007, 07:25 | #19 |
NavAx
|
Цитата:
Сообщение от AvrDen
УРААА! Проблема решилась следующим образом: На форме InventTable были есть две таблицы InventItemLocation(с полями ItemId, InventDimId) и InventItemBarcode(с полями ItemId, InventDimId). Обе таблицы были соеденины с InventTable(InnerJoin).После того как InventItemBarcode подсоеденил к InventItemLocation все заработало нормально. Интересно почему в SQL2000 все работало нормально.....?
а какой криминал писать так, как было написано? (кажись это Axapta Retail). Можно было и так и так. Понятно что запросы пошли другие. Но на то мы и с бубном тут стоим
__________________
И все они создания природы... |
|
14.08.2007, 13:19 | #20 |
Member
|
Цитата:
Сообщение от Lazy_Tiger
...
а какой криминал писать так, как было написано? ... Я лишь вступился за Микрософт. Цитата:
Сообщение от Lazy_Tiger
...
(кажись это Axapta Retail) ... Цитата:
Сообщение от Lazy_Tiger
...
Но на то мы и с бубном тут стоим ... См. первый абзац в этом посте участника Pavel И снова о репутации...
__________________
С уважением, glibs® |
|