Я создал слой доступа к данным, используя .NET. Везде, где я обновляю запись базы данных, я использовал sql в соответствии с
ОБНОВЛЕНИЕ клиента SET FirstName =: FirstName, LastName =: LastName, Address1 =: Address1, Address2 =: Address2, .... и т. Д.
Это означает, что каждое поле в записи обновляется, даже если только одно поле могло быть изменено. Коллега высказался по этому поводу, сказав, что мы должны обновлять поле, только если оно изменилось, сославшись на пропускную способность - скажем, у нас было 160 полей, затем мы передаем данные для 160 полей. Я думаю, я мог бы сэкономить пропускную способность между веб-сервером и сервером базы данных, если бы проверил, изменилось ли значение, и сгенерировал sql исключительно на основе значений, которые были фактически изменены.
Между веб-сервером и клиентом мне теперь нужно передать как старые, так и новые значения, поэтому потенциально я могу увеличить пропускную способность там (но тогда ASP.NET делает это уже в любом случае, и я не уверен, что мы можем переключить этот бит так что это, вероятно, не проблема).
Так что же такое лучшая практика? Стоит ли беспокоиться об обновлении всех полей в записи базы данных? Как мне обновить только поля, которые изменились?
Редактирование добавлено 29 октября: Кто-нибудь знает, что делает NHibernate? Возможно, это аргумент, чтобы тратить время на изучение того, как это сделать.