Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.28;
Скачать: CL | DM;

Вниз

можно как-то сделать быстрее?   Найти похожие ветки 

 
12 ©   (2009-12-31 11:32) [0]

этот кусок вызывает тормоза, время выполнения ~ 4,5 секунды. И около 5 секунд всего на SP.
Select
 @Qty = Sum(Case
   When D.CLocal = 1 and D.DLocal = 1 and J.Iteration = 0 Then 0
   When D.CLocal = 1 and D.CClient = 0 and J.Iteration >= 0 Then J.Move
   When D.DLocal = 1 and D.DClient = 0 and J.Iteration <= 0 Then -J.Move
   Else 0 End),
 @Cost1 = Sum(Case
   When D.CLocal = 1 and D.DLocal = 1 and J.Iteration = 0 Then 0
   When D.CLocal = 1 and D.CClient = 0 and J.Iteration >= 0 Then J.Sum1
   When D.DLocal = 1 and D.DClient = 0 and J.Iteration <= 0 Then -J.Sum1
   Else 0 End),
 @Cost2 = Sum(Case
   When D.CLocal = 1 and D.DLocal = 1 and J.Iteration = 0 Then 0
   When D.CLocal = 1 and D.CClient = 0 and J.Iteration >= 0 Then J.Sum2
   When D.DLocal = 1 and D.DClient = 0 and J.Iteration <= 0 Then -J.Sum2
   Else 0 End),
 @CostTax = Sum(Case
   When D.CLocal = 1 and D.DLocal = 1 and J.Iteration = 0 Then 0
   When D.CLocal = 1 and D.CClient = 0 and J.Iteration >= 0 Then J.SumTax
   When D.DLocal = 1 and D.DClient = 0 and J.Iteration <= 0 Then -J.SumTax
   Else 0 End)
From
 Journal J with(NOLOCK)
 Inner Join Document D with(NOLOCK)
                on J.Document = D.Document
Where
 J.Product = @Product and
 D.Shift <= @Shift and
 D.Deleted = 0 and
 D.InUse = 0 and
 D.UnderConstruction = 0

что смущает, так это практически идентичные when-then


 
clickmaker ©   (2009-12-31 11:54) [1]

@Qty = Sum(Case
  When D.CLocal = 1 and D.DLocal = 1 and J.Iteration = 0 Then 0
  When D.CLocal = 1 and D.CClient = 0 Then J.Move * SIGN(J.Iteration)

ну и план надо смотреть. где наибольшие издержки.
может, индексы стоит повесить


 
12 ©   (2009-12-31 12:42) [2]

@Qty = Sum(Case
  When D.CLocal = 1 and D.DLocal = 1 and J.Iteration = 0 Then 0
  When D.CLocal = 1 and D.CClient = 0 and J.Iteration >= 0 Then J.Move
  When D.DLocal = 1 and D.DClient = 0 and J.Iteration <= 0 Then -J.Move
  Else 0 End),

точно, это вообще идентично
@Qty = Sum(Case
 When D.CLocal = 1 and D.CClient = 0 Then J.Move * SIGN(J.Iteration)
 else 0 end)

с индексами проблема - индексы есть
но кластерные не используются тут, они логически для других случаев

хотя вот это
from Journal J
Join Document D on J.Document = D.Document
наблюдаю практически везде
сложно сказать пока, почему кластерные оказались другими


 
Anatoly Podgoretsky ©   (2009-12-31 15:08) [3]

По Дельфи вопрос есть?


 
stas ©   (2010-01-03 20:57) [4]

>что смущает, так это практически идентичные when-then
В первую очередь должно смущать это:
Where
J.Product = @Product and
D.Shift <= @Shift and
D.Deleted = 0 and
D.InUse = 0 and
D.UnderConstruction = 0

Индексы в правильном порядке проставлены?
если все же смущает  when-then, то убери и проверь прирост скорости


 
anonims   (2010-01-11 11:50) [5]

When D.CLocal = 1 and D.CClient = 0 Then J.Move * SIGN(J.Iteration)

D.CLocal = 1 and D.CClient = 0 перенести в WHERE (другие нам не нужны, т.к. ELSE 0 )

останется sum(SIGN(j.iteration)*j.move),  sum(sign()*sum1), ...


 
ANB   (2010-01-11 12:32) [6]

when сам по себе практически не дает нагрузки.
Смотреть план запроса на предмет связок и использования индексов



Страницы: 1 вся ветка

Текущий архив: 2011.08.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
11-1233209905
s_arty
2009-01-29 09:18
2011.08.28
проблема с www.kolnmck.ru


15-1303914069
xayam
2011-04-27 18:21
2011.08.28
Идея для программы


15-1304672702
OW
2011-05-06 13:05
2011.08.28
С наступающим днем связи!


2-1305549187
Соня
2011-05-16 16:33
2011.08.28
ADOConnection


15-1305100982
KilkennyCat
2011-05-11 12:03
2011.08.28
Вопрос по html div и текст