Определяющим здесь является не производительность а ограничения бизнес-процесса. Если возможно на логическом уровне допустить обработку части строк, а не всех сразу, то лучше использовать второй вариант.
Если не хотите реализовывать функцию дообработки частично необработанных данных (на случай обрыва транзакции) и блокировки не критичны, то используйте первый вариант.
См. также
Коллеги, что вы думаете о данном коде? 2MikeR