LINQ to SQL 与企业库
我每天插入 100 万条记录。我的前端是 C# 4.0,后端是 MS SQL Server 2008 R2。
我应该使用什么方法才能获得最佳性能?我应该使用 LINQ To SQL 或 Enterprise Library 5.0 还是其他?
I have 1 million records inserted per day. My front end is C# 4.0 and my back end is MS SQL Server 2008 R2.
What method should I use to gain the best performance? Should I use LINQ To SQL or Enterprise Library 5.0 or something else?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果要向数据库中插入那么多行,则应考虑使用 SQL Server 批量插入。它被设计来处理这些类型的负载。我喜欢 Linq to SQL,但它不能很好地处理这种负载。
If you're going to be inserting that many rows into a database, you should consider using SQL Server Bulk Insert. It was designed to handle these kinds of loads. I love Linq to SQL, but it won't handle this sort of load too well.
是一批 100 万条,还是一次 100 万条记录?
如果您正在寻找批处理,您可以忘记具有此类卷的 Linq2sql。看一下 SqlBulkCopy 类,它的速度要快得多。
因此,您可以选择混合解决方案 - 对批处理使用 SqlBulkCopy,并且您仍然可以使用 linq2sql 对单个实体(或小批量)进行查询和 CRUD 操作。
如果一次只有一条记录均匀分布,我认为您仍然可以使用 Linq2sql 进行管理。
Is that 1 million in one batch, or a million times 1 record at a time?
If you are looking for batch, you can forget about Linq2sql with these kind of volumes. Have a look at the SqlBulkCopy class, that is magnitues faster.
So you can opt for a hybrid solution - use SqlBulkCopy for your batch and you can still use linq2sql for queries and CRUD actions on single entities (or small batches).
It it is only one record at a time distributed evenly, i think you will still manage with Linq2sql.
我同意其他人关于如何执行批处理操作的观点,但我根本不建议使用 LINQ to SQL。请改用实体框架。它更加灵活。
I agree with the others on how to do batch operations, however I would not suggest LINQ to SQL at all. Use Entity Framework instead. It is much more flexible.