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

.net – 使用编译查询时,还需要存储过程吗?

在实体框架(或 linq-to-sql)中结合sql Server使用编译查询时,使用存储过程是否仍然具有任何性能优势?

编译查询将被缓存为参数化查询,因此性能应近似等于存储过程.有什么情况下存储过程会表现得更好吗?

– 编辑 –

回应Yakimych在下面的回答,我并不意味着编译查询与存储过程相同.如果您已经在应用程序方面进行了所有可能的优化(在这种情况下是已编译的查询),我正在尝试确定是否仍然需要sprocs.所以我想我正在寻找存储过程比应用程序侧优化和参数化查询的组合(这是编译查询是有效的)的原因.

我提出这个问题的原因之一是因为有很多人似乎认为由于不同的原因(即this post),存储的产品不再是必需的.

解决方法

“Is there any situation where stored procedures would perform significantly better?”

给定在EF或存储过程中生成的可比较的参数化sql,它们将执行相同的操作.

然而,DBA总是有机会根据DB架构及其使用模式的经验进一步优化查询.存储过程允许他们轻松地使用它来分离应用程序,而ORM则不使用它.

我们有一个非常复杂的sql Server数据库,它有许多外部系统通过触发器复制数据.使用EF的问题是,在使用任何ORM而不是DBA时,在数据库中触发的sql的责任将成为应用程序开发人员的责任.

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

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

相关推荐