SQL与LINQ性能

前端之家收集整理的这篇文章主要介绍了SQL与LINQ性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们目前有一个依赖独立数据库ORM的自制实体框架.

我必须构建一个在DB中批量加载元数据的软件,这个模块可以有大约150个excel模板(有关单元格位置,单元格类型,格式等信息).

我可以操作

>通过sql批处理(更快,但交互更少)
>通过在内存中构建对象,使用LINQ查询处理它们以进行各种完整性检查,然后对DB进行修改

我知道sql是绝对快的,但我会知道…它是多快?

详细来说,LINQ查询(假设所有需要的数据已经被ORM加载到内存中),SQL查询的速度是多少?

解决方法

在大多数情况下,TBH并不完全是 linqsql的问题.您的性能将与您插入的数据量,表中当前的数据量和您维护的索引有关.

第二,您是否需要跨数据的多个列执行交叉检查和/或完整性检查.我已经有一些情况,添加索引和重建表已经花费了从几分钟到几毫秒的时间,这是因为分片不好和缺少算法.

Linq生成sql插入和修改逻辑的有效方式.但是你总是会遇到这样的模式:

>从数据库获取数据
>使用Linq修改数据
>将更改提交到数据库.

如果您有任何逻辑可以在插入中使用,您可以使用set逻辑在sql中进行更新.例如.更新客户设置KeyCustomer = 1其中Sales> 1000000.sql Server将处理像这样的命令,比您可以用ORM更快速度的1000倍.但是,由于@gbn已经正确地指出,除非您拥有一个充满强大sql编码器的团队,否则在短期内维护经常会夺取任何收益.

如果您必须插入大量记录,那么您应该通过SSIS来查看批量加载和/或ETL.这些API将使用更智能的算法,并且批量执行任何约束检查,而不是每次插入,这将为您提供卓越的性能提升.但是,管理SSIS包比点击应用中的按钮要好得多.这些都是您构建应用程序时需要考虑的设计决策.

原文链接:https://www.f2er.com/mssql/82018.html

猜你在找的MsSQL相关文章