MSSQL存储过程中的执行计划

0    78    1

Tags:

👉 本文共约3211个字,系统预计阅读时间或需13分钟。

简介

存储过程可能包含单个查询,也可能包含整个查询系列。

在后一种情况下,您将看到多个执行计划,但是处理每个计划的方式与其他任何执行计划没有区别。

在运行存储过程的时候,勾选“包括实际的执行计划(Ctrl+M)”,在执行完后就会显示存储过程中的所有语句的执行计划和花费的时间比例,这在调试慢的存储过程时非常有用。 也可以不执行存储过程而使用“显示预估的执行计划(Ctrl+L)”来预估一下存储过程中的所有语句的执行计划

MSSQL存储过程中的执行计划

MSSQL存储过程中的执行计划

示例1

下面是 TaxRateByState 存储过程的创建脚本,目的是返回税率低于某个值的信息(这个例子中是低于7.5)。这是一个典型的存储过程的例子,这可能是随着时间的推移而形成的,由非专业的T-SQL人员创建。它涉及一系列步骤,将一些数据整合在一起,对这些数据进行操作,然后返回一个结果集。在某些情况下,这种方法是合理的,但在其他情况下,它不是最佳解决方案。

可能仅仅需要一个查询就实现了相同的逻辑,而不需要临时表。但是,这种类型的代码你在实际系统中是经常遇到的,有时,你仅仅需要了解影响性能的问题,通过计划,并决定一个修复方案,而不一定有时间,甚至没有机会,来做一个完整的重写。同时,注意到@CountryRegion­Code 参数 NVARCHAR(3) 不是最好的数据类型,CHAR(3) 可能更有效、合理。然而,NVARCHAR(3) 是表中对应列使用的数据类型,存储过程也遵循这个类型,避免数据转换问题。

我们可以通过传递一个值给存储过程,并执行存储:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
MSSQL存储过程中的执行计划后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部