【发布时间】:2009-10-28 15:10:17
【问题描述】:
我使用 .NET 创建了一个数据访问层。在我更新数据库记录的任何地方,我都使用了 sql
UPDATE Customer SET FirstName=:FirstName, LastName=:LastName, Address1=:Address1, Address2=:Address2,....等
这意味着记录中的每个字段都会更新,即使可能只有一个字段已更改。一位同事对此提出了质疑,说我们应该只在字段发生变化时更新它,并引用带宽作为问题 - 假设我们有 160 个字段,然后我们传递 160 个字段的数据。如果我检查一个值是否发生了变化,我想我可以节省 Web 服务器和数据库服务器之间的带宽,并完全根据实际更改的值生成 sql。
在 Web 服务器和客户端之间,我现在需要同时传递旧值和新值,因此我可能会增加那里的带宽(但无论如何 ASP.NET 已经这样做了,我不确定我们可以切换那个位关闭,所以这可能不是问题)。
那么最佳实践是什么?我应该担心更新数据库记录中的所有字段吗?我将如何只更新已更改的字段?
10 月 29 日添加的编辑:有人知道 NHibernate 是做什么的吗?也许这是花时间学习如何做到这一点的论据。
【问题讨论】: