SQL与LINQ性能
我们目前有一个依赖独立数据库ORM的自制实体框架.
我必须构建一个在DB中批量加载元数据的软件,这个模块可以有大约150个excel模板(有关单元格位置,单元格类型,格式等信息). 我可以操作 >通过SQL批处理(更快,但交互更少) 我知道SQL是绝对快的,但我会知道…它是多快? 详细来说,LINQ查询(假设所有需要的数据已经被ORM加载到内存中),SQL查询的速度是多少? 解决方法在大多数情况下,TBH并不完全是 linq或SQL的问题.您的性能将与您插入的数据量,表中当前的数据量和您维护的索引有关.第二,您是否需要跨数据的多个列执行交叉检查和/或完整性检查.我已经有一些情况,添加索引和重建表已经花费了从几分钟到几毫秒的时间,这是因为分片不好和缺少算法. Linq是生成SQL插入和修改逻辑的有效方式.但是你总是会遇到这样的模式: >从数据库获取数据 如果您有任何逻辑可以在插入中使用,您可以使用set逻辑在SQL中进行更新.例如.更新客户设置KeyCustomer = 1其中Sales> 1000000.SQL Server将处理像这样的命令,比您可以用ORM更快速度的1000倍.但是,由于@gbn已经正确地指出,除非您拥有一个充满强大SQL编码器的团队,否则在短期内维护经常会夺取任何收益. 如果您必须插入大量记录,那么您应该通过SSIS来查看批量加载和/或ETL.这些API将使用更智能的算法,并且批量执行任何约束检查,而不是每次插入,这将为您提供卓越的性能提升.但是,管理SSIS包比点击应用中的按钮要好得多.这些都是您构建应用程序时需要考虑的设计决策. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |