存储过程有没有在没有它们的情况下无法实现的性能优势?
发布于 2010-11-02 05:34:49
可以使用存储过程优化非常大的查询,但差别通常很小。
来自应用程序的大型查询需要通过网络传输,然后由SQL服务器进行解析。
使用存储过程可以减少传输的数据量,并且不需要在每次调用该过程时都执行解析。
发布于 2010-11-02 05:35:22
当您必须在存储过程中执行多个查询时。
假设有两个查询-有来回的旅行,你不能恢复(假设数据库和应用程序代码不在同一个盒子上-在中型到大型应用程序中很常见)。再加上管理交易的顾虑...
与其说是性能问题,不如说是一个巨大的安全问题,除了参数化查询的安全性之外,用户还可以提交任何SQL。
发布于 2010-11-02 05:37:07
如果您只讨论执行时性能(而不是可维护性),那么存储过程通常优于非参数化查询,因为它们的执行计划由SQL服务器自动缓存。
请注意,与非参数化查询相反,参数化查询也可以由SQL服务器缓存,但一般来说,在使用存储过程时更有可能获得执行计划缓存,因为这意味着无论您在应用程序中的什么位置调用相同的查询,都将使用相同的查询来执行相同的任务。
https://stackoverflow.com/questions/4073221
复制相似问题