View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000302 | ГРАНИТ | General | public | 2012-04-20 13:45 | 2012-04-24 12:27 |
| Reporter | ruslan | Assigned To | ruslan | ||
| Priority | normal | Severity | major | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Summary | 0000302: БД - процедура GddDt_MoveGoodsAll(:CurOrgnID, :BDATE, :EDATE) - похоже изменился план после перехода на FB2_5 | ||||
| Description | Глянь потому что я на Твиновской базе делаю отчет, типа Движение товара по Группам скаладов, по Группам товара от безумно тормозит. Пробую запрос в IBE он дает мне больше миллиона чтений из таблицы товары... | ||||
| Steps To Reproduce | Select 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 | ||||
| Tags | No tags attached. | ||||
|
|
В GddDt_MoveGoodsAll ничего особенного не нашел. У меня по Мебели отрабатывает за 14 сек. По группам складов - это другая процедура, насколько я понимаю, хотя построена аналогично. |
|
|
По группам складов все отчеты построены на этой процедуре... ты писал еще какую-то? Вот запрос из строго отчета Инвентаризация по группам складов 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 |
|
|
Ты попробуй на "мебели" штуки 4 реальных склада в группу запихни и катани этот запрос хотя б за месяц(я ж не даром тебе выше дал), по этой группе складов. И посмотри на кол-во чтений из таблицы Товары...ясен хрен что комп у тя мощнее 8-и летнего сервера на Твине, так что абсолютное время исполнения здесь малоинформативно. Процедура действительно есть gdddt_movegoods_sgrp()... не знаю когда ты ее правда сделал, ни одного отчета, который я видел по группам складов на ней нет :-((И старые для Элокса "Остатки по группам складов",которые ты писал, и для ДК все сделаны на gdddt_movegoodsAll, а я на этой процедуре Движение... написал, но раньше оно делалось ну 5 минут за месяц, а щас 15...). Я никогда на процедуру gdddt_movegoods_sgrp() не обращал внимания(знаю, что есть По складу, и ПО всем складам...)... она на таком запросе делается 5 сек. А я как тот дед до сих пор поезда под откос пускаю :-). |
|
|
Переписал отчет на процедуре по группам складов - все летает. |
| 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 |