Хранимая процедура, которая запускает SELECT для большой таблицы. Предложение where вызывает тайм-аут, потому что я выбираю только города, которые находятся в другой таблице.
AND city IN (SELECT DISTINCT city from tOH where clientId = @clientId)
AND state IN (SELECT DISTINCT state from tOH where clientId = @clientId)
* примечание, почти всегда будет возвращаться только одно состояние
Я пытаюсь поместить города в таблицу, а затем использовать таблицу для заполнения городов, но получаю сообщение об ошибке, что @cities не объявлено.
DECLARE @cities TABLE
(
city varchar(200)
);
INSERT INTO @cities (city) SELECT city FROM tOH WHERE clientId = @clientId GROUP BY city
Тогда мое предложение where изменится на
AND city IN (SELECT city from @cities)
Может кто-нибудь найти хороший способ оптимизации этой хранимой процедуры?
---------------------------- ОБНОВЛЕНИЕ ------------------ ------------------
Соединения слишком медленные. Я думаю, что решение с временной таблицей или табличной переменной будет работать.