加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:10:37 所属栏目:MsSql教程 来源:网络整理
导读:在实体框架(或 linq-to-sql)中结合SQL Server使用编译查询时,使用存储过程是否仍然具有任何性能优势? 编译查询将被缓存为参数化查询,因此性能应近似等于存储过程.有什么情况下存储过程会表现得更好吗? – 编辑 – 回应Yakimych在下面的回答,我并不意味着编
在实体框架(或 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的责任将成为应用程序开发人员的责任.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读