|
Почему тупит запрос?
|
|||
---|---|---|---|
#18+
Есть запрос, имеющий среди условий такое, повторяемое три раза (объединение трех запросов) WHERE Case convert(int,_AccumReg4612._Fld4617_RTRef) when 145 then _Document145._Number when 118 then _Document118._Number End = 'Pс048429' Чтобы не менять значение отбора на другое руками в трех местах написал так Declare @DocNumber nchar(8); set @DocNumber = 'Pс048429'; select ... WHERE Case convert(int,_AccumReg4612._Fld4617_RTRef) when 145 then _Document145._Number when 118 then _Document118._Number End = @DocNumber ... И запрос вместо нескольких секунд стал выполняться 8 минут. Что я сделал не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 10:30 |
|
Почему тупит запрос?
|
|||
---|---|---|---|
#18+
Допишите к запросу option (recompile) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 10:41 |
|
Почему тупит запрос?
|
|||
---|---|---|---|
#18+
invm Допишите к запросу option (recompile) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 11:01 |
|
Почему тупит запрос?
|
|||
---|---|---|---|
#18+
Благодарствую ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 11:02 |
|
Почему тупит запрос?
|
|||
---|---|---|---|
#18+
Чтобы "закрыть угол", я бы проверил, что case, чёрт его знает, выдаёт на выходе, тоже Nchar, как и аргумент? Может, индекс не включился? Сделать select into в таблицу-одноминутку и посмотреть типы колонок. А если всё в норме, то такова селяви. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 15:30 |
|
|
start [/forum/topic.php?fid=46&msg=39907778&tid=1686709]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
1041ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 362ms |
total: | 1494ms |
0 / 0 |