В общем случае предложение 2-го случая (с WHERE) будет более быстрым, поскольку оно не приведет к оценке триггера, регистрации транзакций, обновлению индекса и т. Д. Для неиспользуемых строк.
Потенциально - в зависимости от распределения значений 0/1 на самом деле может быть быстрее обновить все строки, чем проводить сравнение - но это довольно вырожденный случай.
Поскольку ~ 95% затрат на ваш запрос составляют операции ввода-вывода, использование предложения WHERE не будет иметь никакого значения (поскольку столбец не проиндексирован, и вы выполняете сканирование таблицы), или огромной разницы (если столбец индексируется, или таблица секционируется и т. д.). В любом случае, это не больно.
Я подозреваю, что для объема данных, которые вы говорите, вы не заметите разницы ни в планах выполнения, ни в скорости - что делает его академическим в лучшем случае преждевременной оптимизацией в худшем. Поэтому я бы посоветовал использовать все, что логично для вашего приложения.