View Issue Details

IDProjectCategoryView StatusLast Update
0000302ГРАНИТGeneralpublic2012-04-24 12:27
Reporterruslan Assigned Toruslan  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Summary0000302: БД - процедура GddDt_MoveGoodsAll(:CurOrgnID, :BDATE, :EDATE) - похоже изменился план после перехода на FB2_5
DescriptionГлянь потому что я на Твиновской базе делаю отчет, типа Движение товара по Группам скаладов, по Группам товара от безумно тормозит. Пробую запрос в IBE он дает мне больше миллиона чтений из таблицы товары...
Steps To ReproduceSelect GG.ID, GG.NAME,
Sum(M.qInp) QINP,
Sum(M.qOut) QOUT,
Sum(M.qBeg) QBEG,
Sum(M.qEnd) QEND,
Sum(M.qInp*M.Price) PI,
Sum(M.qOut*M.Price) PO,
Sum(M.qBeg*M.Price) PB,
Sum(M.qEnd*M.Price) PE,
Sum(M.qInp*M.Nds) NInp,
Sum(M.qOut*M.Nds) NOut,
Sum(M.qBeg*M.Nds) NBeg,
Sum(M.qEnd*M.Nds) NEnd

from GddDt_MoveGoodsAll(:CurOrgnID, :BDATE, :EDATE) M
/*join GddKt K on K.ID = M.KID
join DgvKt KK on KK.ID = K.DgvKey
join StorgrpRef SG on KK.Stor = SG.StorID and SG.GrpID = :ID */
join Goods G on G.ID=M.gid
--K.gdskey
join Goods GG on GG.ID = G.id
Group By GG.ID, GG.Name
Having Sum(M.qInp)<>0 or Sum(M.qOut)<>0 or Sum(M.qBeg)<>0 or Sum(M.qEnd)<>0
Order by GG.Name
TagsNo tags attached.

Activities

barry

2012-04-20 17:49

administrator   ~0000586

В GddDt_MoveGoodsAll ничего особенного не нашел. У меня по Мебели отрабатывает за 14 сек.
По группам складов - это другая процедура, насколько я понимаю, хотя построена аналогично.

ruslan

2012-04-23 12:17

manager   ~0000587

По группам складов все отчеты построены на этой процедуре... ты писал еще какую-то?
Вот запрос из строго отчета Инвентаризация по группам складов
select Sum(p.qend) Quant,
Sum((p.price-p.nds)*p.qend) NSUMMA,
Sum(p.nds*p.Qend) SUMNDS,
Sum(P.QEnd * P.Price) SUMMA,
G.Name, g.Code, G.Cod, G.One, PP.path grpgoods
from gdddt_movegoodsAll(:OrgnID, :EDATE,:EDATE) p
join StorGrpRef R on R.StorID=P.Stor
join Goods g on g.id=p.gid
left join GoodsGroups_Path (G.Owner) PP on 0=0
where R.GrpID = :ID
Group By G.Name, g.Code, G.Cod, G.One,pp.path
Having Sum(p.qend) >= 0.00001 or Sum(p.qend) <= -0.00001
Order By pp.path, G.Name, G.Code

ruslan

2012-04-23 12:31

manager   ~0000588

Ты попробуй на "мебели" штуки 4 реальных склада в группу запихни и катани этот запрос хотя б за месяц(я ж не даром тебе выше дал), по этой группе складов. И посмотри на кол-во чтений из таблицы Товары...ясен хрен что комп у тя мощнее 8-и летнего сервера на Твине, так что абсолютное время исполнения здесь малоинформативно.
   Процедура действительно есть gdddt_movegoods_sgrp()... не знаю когда ты ее правда сделал, ни одного отчета, который я видел по группам складов на ней нет :-((И старые для Элокса "Остатки по группам складов",которые ты писал, и для ДК все сделаны на gdddt_movegoodsAll, а я на этой процедуре Движение... написал, но раньше оно делалось ну 5 минут за месяц, а щас 15...).
   Я никогда на процедуру gdddt_movegoods_sgrp() не обращал внимания(знаю, что есть По складу, и ПО всем складам...)... она на таком запросе делается 5 сек. А я как тот дед до сих пор поезда под откос пускаю :-).

ruslan

2012-04-24 12:26

manager   ~0000597

Переписал отчет на процедуре по группам складов - все летает.

Issue History

Date Modified Username Field Change
2012-04-20 13:45 ruslan New Issue
2012-04-20 17:49 barry Note Added: 0000586
2012-04-23 12:17 ruslan Note Added: 0000587
2012-04-23 12:31 ruslan Note Added: 0000588
2012-04-24 12:26 ruslan Note Added: 0000597
2012-04-24 12:26 ruslan Status new => closed
2012-04-24 12:27 ruslan Assigned To => ruslan
2012-04-24 12:27 ruslan Resolution open => fixed