Допустим, у меня есть таблица Big
и Bigger
.Мне нужно циклически перебирать таблицу Big
, которая проиндексирована, но не последовательная (поскольку это фильтр последовательно индексированной таблицы Bigger
).
В этом примере, скажем, мне нужно было перебратьоколо 20000 строк.
Должен ли я сделать 20000 из них
set @currentID = (select min(ID) from myData where ID > @currentID)
или
Создание (большой) временной таблицы с последовательным индексированием (копия таблицы Big
)и сделать 20000 из
@Row = @Row + 1
?
Я представляю, что выполнение 20000 фильтров из таблицы Bigger
просто для получения следующего идентификатора является тяжелым, но поэтому должно заполнять большой (*Временная таблица размером 1021 *) для добавления фиктивного столбца идентификаторов.
Это решение где-то еще?Например, если бы я мог циклически просмотреть результаты оператора select (фильтр таблицы Bigger
, которая порождает "table" (фактически набор результатов) Big
) без необходимости создания временных таблиц, это было бы идеально, ноКажется, я не могу добавить что-то вроде фиктивного столбца IDENTITY (1,1) к результатам.
Спасибо!