微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 使用ORM进行大容量数据库更新

我喜欢ORM工具,但我经常认为对于大型更新(数千行),加载,更新和保存时似乎效率低下
UPDATE [table] set [column] = [value] WHERE [predicate]

会提供更好的表现.

但是,假设出于性能原因想要沿着这条路走下去,那么你将如何确保内存中缓存的任何对象都得到正确更新.

假设您正在使用LINQ to sql,并且您一直在使用DataContext,那么如何确保您的高性能UPDATE反映在DataContext的对象图中?

这可能是“你没有”或“在DB上使用触发器来调用丢弃缓存的.NET代码”等等,但我很想听到这类问题的常见解决方案.

解决方法

你是对的,在这种情况下,使用ORM加载,更改然后保留记录效率不高.我的过程就是这样的

1)早期实现使用ORM,在我的例子中是NHibernate,专门

2)随着开发的成熟,确定性能问题,其中包括大量更新

3)将那些重构为sql或SP方法

4)使用Refresh(object)命令更新缓存对象,

我的一个大问题是通知其他客户更新已经发生.在大多数情况下,我们已经接受了一些客户端将是陈旧的,无论如何都是标准ORM使用的情况,然后检查更新/插入时的时间戳.

原文地址:https://www.jb51.cc/mssql/78184.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐