@Kersantinov

Как оптимизировать select?

Доброго дня. Есть один очень ресурсоемкий запрос с курсором из 250 тыс строк, и поиском по маске внутри курсора по ~2 тыс строкам.
Извращение, но другого я не придумал - надо идентифицировать назначение платежа из банковской выписки, а там написано всегда разное.
Мне надо получить число совпадений по маске, и если совпадение одно - получить ID этой строки.
Варианта придумалось 2.
1 - селект во временную таблицу, затем подсчет.
select *
into #temp1
from #temp_pay_parser
where @str like [contract_mask]

2 - это два селекта с поиском по маске.

В целом оба запроса отрабатывают примерно одинаково - 1 строка за 2 секунды.

А можно как-нибудь получить оба значения одним селектом, дабы сократить время обработки вдвое? в MySQL понится была багофича типа
select top 1 @a = count(*), @b = [id]
from #temp_pay_parser
where @str like [contract_mask]

Нет ли аналогичного варианта для MSSQL 2008?
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы