Какой был бы наиболее эффективный способ перебрать 25 000 записей и, основываясь на некоторой заранее написанной логике vb, которая никогда не изменится (уверен на 99%), обновить столбец Result в таблице до значения 1, 2 или 3?
Производительность и надежность здесь важнее всего.Это, скорее всего, будет вызвано через клиент-серверное приложение в сети, но было бы неплохо иметь возможность вызывать его из веб-приложения.Я думаю о 3 разных способах сделать это с T-SQL, C #.
a.Запись объекта, который выполняет хранимую процедуру, получает 25 000 записей, использование коллекции foreach для просмотра каждой записи и на основе некоторой логики c # вызов объекта в каждой записи, которая выполняет хранимую процедуру, для обновления этой строки.Это вызвало бы объект 25 000 раз (и процедура, которую я предполагаю, просто использовала бы план выполнения)
или
b.Напишите хранимую процедуру, которая получает 25 000 записей, используйте запрещенный курсор для просмотра каждой записи и, основываясь на некоторой логике T-SQL, обновите эту строку в этой хранимой процедуре.
или
ОБНОВЛЕНО: МОЕ РЕШЕНИЕ ЭТО ТОЛЬКО Я собираюсь использовать сохраняемые вычисляемые столбцы и разбивать цикл на более мелкие операторы обновления для обновления столбца (все обернуто в транзакцию),Смотрите статью ниже.Я думаю, что это будет действительно быстро, по сравнению с циклом ..
http://technet.microsoft.com/en-us/library/cc917696.aspx