web*_*ad3 29 performance sql-server stored-procedures query-performance
我知道存储过程通过执行路径更有效(比应用程序中的内联 sql)。然而,当被按下时,我对原因不是很了解。
我想知道对此的技术推理(以稍后我可以向某人解释的方式)。
谁能帮我制定一个好的答案?
Aar*_*and 48
我相信这种观点在某一时刻是正确的,但在当前版本的 SQL Server 中则不然。整个问题在于,过去无法正确优化临时 SQL 语句,因为 SQL Server 只能在批处理级别进行优化/编译。现在我们有了语句级优化,因此来自应用程序的正确参数化查询可以利用与嵌入在存储过程中的查询相同的执行计划。
我仍然更喜欢 DBA 方面的存储过程,原因如下(其中几个可能对性能产生巨大影响):
sys.sql_modules,用于对特定对象的引用)使每个人的生活变得更加轻松。SET ANSI_WARNINGS ON,另一个可以有SET ANSI_WARNINGS OFF,并且每个应用程序都有自己的计划副本。他们获得的计划取决于使用的参数、适当的统计信息等。在每种情况下第一次调用查询时,这可能会导致不同的计划,从而导致非常不同的性能。尽管如此,与技术辩论相比,这个问题可能会引发更多的宗教争论。如果我们看到这种情况发生,我们可能会关闭它。
| 归档时间: |
|
| 查看次数: |
29862 次 |
| 最近记录: |