开发者社区> 问答> 正文

与使用ado.net和oledb相比,LINQ To SQL是否提供更快的响应时间?

LINQ无疑简化了数据库编程,但是它有缺点吗?内联SQL要求人们以某种​​方式与数据库进行通信,从而可以打开数据库进行注入。内联SQL还必须经过语法检查,建立计划然后执行,这需要花费宝贵的时间。在出色的数据库应用程序编程中,存储过程也已成为坚如磐石的标准。我认识的许多程序员都使用简化开发的数据层,但是,LINQ并没有达到这个程度。是时候放弃SP并使用LINQ了吗?

展开
收起
心有灵_夕 2019-12-28 22:52:57 617 0
1 条回答
写回答
取消 提交回答
  • LINQ to SQL实际上在数据库中提出了一些令人震惊的性能问题。基本上,它根据您使用的参数的长度创建多个执行计划。我前不久在我的博客LINQ to SQL上发布了有关它的信息,这可能会导致性能问题。

    现在,是说LINQ没有位置吗?几乎不。就像存储过程一样,LINQ在开发工具包中肯定占有一席之地。最终,您需要在绝对需要性能的情况下使用存储过程,并在任何其他情况下使用ORM工具。

    就内联SQL而言,存在执行内联SQL的方法,因此该计划仅构建一次,并且永远不会重新编译。大多数ORM也应注意性能调整的这一方面,并​​且使用这些方法通常是执行SQL的最安全方法,因为它会迫使您使用参数化查询。

    像大多数数据库解决方案一样,正确的答案取决于您要解决的问题。如果您希望开发速度胜于数据库/应用程序性能,那么最好使用LINQ或其他DAL / ORM工具。如果您倾向于性能而不是易于开发,那么使用存储过程和纯数据集将是您的最佳选择。LLBLGen甚至提供了LINQ到LLBLGen层,因此您可以使用LINQ来查询LLBLGen的对象,并让LLBLGen实际处理构建查询并避免LINQ的崩溃。

    2019-12-28 22:53:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载