存储过程与嵌套查询优化

日期: 2009-08-10 作者:Baya Pavliashvili翻译:孙瑞 来源:TechTarget中国 英文

使用嵌套查询是初学者所犯的典型错误。有些语言提供直接从前端应用发送到数据库的合并查询。如果你的应用用户数较少,那么你可以使用这个方法。但是,一旦你的用户是成十成百的增长,那么你一定会遇到性能问题通知(以及甚至是用户的抱怨)。

  该怎么处理呢?SQL Server具备一个非常智能的嵌套查询优化器,它可以在运行时创建查询执行规划。优化器可以缓存最近使用执行规划并重用它们。这样做将导致减少服务器的负载从而获得更好的性能。然而,优化器重用存储过程的查询规划比嵌套查询更容易。

你的存储过程至少可以保证与嵌套查询一样的执行速度——99%的情况下存储过程比嵌套查询性能好。另外的1%是极其罕见的个例,即当参数……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

使用嵌套查询是初学者所犯的典型错误。有些语言提供直接从前端应用发送到数据库的合并查询。如果你的应用用户数较少,那么你可以使用这个方法。但是,一旦你的用户是成十成百的增长,那么你一定会遇到性能问题通知(以及甚至是用户的抱怨)。

  该怎么处理呢?SQL Server具备一个非常智能的嵌套查询优化器,它可以在运行时创建查询执行规划。优化器可以缓存最近使用执行规划并重用它们。这样做将导致减少服务器的负载从而获得更好的性能。然而,优化器重用存储过程的查询规划比嵌套查询更容易。你的存储过程至少可以保证与嵌套查询一样的执行速度——99%的情况下存储过程比嵌套查询性能好。另外的1%是极其罕见的个例,即当参数值频繁变化时,重用查询规划实际上是个糟糕的方法。那么你该如何处理呢?通常的做法是,总是使用存储过程替代嵌套查询。

翻译

孙瑞
孙瑞

相关推荐