powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему тупит запрос?
5 сообщений из 5, страница 1 из 1
Почему тупит запрос?
    #39907760
Есть запрос, имеющий среди условий такое, повторяемое три раза (объединение трех запросов)

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 минут. Что я сделал не так?
...
Рейтинг: 0 / 0
Почему тупит запрос?
    #39907763
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допишите к запросу option (recompile)
...
Рейтинг: 0 / 0
Почему тупит запрос?
    #39907776
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
Допишите к запросу option (recompile)
Это может не помочь. Вычисления и преобразования в условии - потенциальный путь к диким тормозам.
...
Рейтинг: 0 / 0
Почему тупит запрос?
    #39907778
Благодарствую
...
Рейтинг: 0 / 0
Почему тупит запрос?
    #39908511
Сруль.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы "закрыть угол",
я бы проверил, что
case, чёрт его знает, выдаёт на выходе,
тоже Nchar, как и аргумент?
Может, индекс не включился?
Сделать
select into
в таблицу-одноминутку и посмотреть типы колонок.
А если всё в норме, то такова селяви.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему тупит запрос?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]