Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1305349826
User
2011-05-14 09:10
2011.08.28
Dataset.Locate - ставит курсор посредиине таблицы


6-1240646066
Foccer
2009-04-25 11:54
2011.08.28
проблемы с Winsock


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


1-1265175281
dfd5
2010-02-03 08:34
2011.08.28
какое сообщение посылает приложению система когда перерисовываетс


6-1240993239
sCANner
2009-04-29 12:20
2011.08.28
Indy IdMessage получить все заголовки письма





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский