首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么时候存储过程比来自应用程序的查询性能更好?

问什么时候存储过程比来自应用程序的查询性能更好?
EN

Stack Overflow用户
提问于 2010-11-02 05:30:32
回答 3查看 107关注 0票数 0

存储过程有没有在没有它们的情况下无法实现的性能优势?

EN

回答 3

Stack Overflow用户

发布于 2010-11-02 05:34:49

可以使用存储过程优化非常大的查询,但差别通常很小。

来自应用程序的大型查询需要通过网络传输,然后由SQL服务器进行解析。

使用存储过程可以减少传输的数据量,并且不需要在每次调用该过程时都执行解析。

票数 2
EN

Stack Overflow用户

发布于 2010-11-02 05:35:22

当您必须在存储过程中执行多个查询时。

假设有两个查询-有来回的旅行,你不能恢复(假设数据库和应用程序代码不在同一个盒子上-在中型到大型应用程序中很常见)。再加上管理交易的顾虑...

与其说是性能问题,不如说是一个巨大的安全问题,除了参数化查询的安全性之外,用户还可以提交任何SQL。

票数 1
EN

Stack Overflow用户

发布于 2010-11-02 05:37:07

如果您只讨论执行时性能(而不是可维护性),那么存储过程通常优于非参数化查询,因为它们的执行计划由SQL服务器自动缓存。

请注意,与非参数化查询相反,参数化查询也可以由SQL服务器缓存,但一般来说,在使用存储过程时更有可能获得执行计划缓存,因为这意味着无论您在应用程序中的什么位置调用相同的查询,都将使用相同的查询来执行相同的任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4073221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档