SQLServer执行计划

梦莱2年前技术文章2057

一、执行计划概览

RDS SQLServer 执行计划可以在性能分析中查看,也可以在登陆数据库后查看执行计划。

1)在 DMS 登陆数据库后查看,情况如下:image.png 

具体执行计划内容如下:

image.png 

2)在性能分析中找到该 SQL,情况如下:

 image.png

具体执行计划内容如下:

image.png 

二、图形分析使用方法

1.图形化的执行计划是从上到下,从右到左进行分析的。

2.在执行计划中可以通过连线内容和当前步骤执行信息的内容进行分析。

三、具体图形分析

1.在性能分析中看到的执行计划,可以看到粗细不同的箭头和一些数据,信息的表示内容如下:

image.png 

a. 箭头越粗表示扫描影响的行数越多

b. Actual Number of Rows 扫描中实际影响的的行数。

c. Estimated Number of Rows 预估扫描影响的行数。

d. Estimated row size 操作符生成的行的估计大小(字节),在实际的查询计划中没有显示该属性的实际值。因为你的表可能包含可变长度类型,表中行的大小各异。

e. Estimated Data Size 预估影响的数据的大小。

2.在当前步骤执行信息,可以看到一些具体的信息,这些信息的具体含义如下:

image.png 

a. Physical Operation: 物理运算,将在数据库引擎上发生的物理运算。

b. Logical Operation: 逻辑运算 ,这些运算符描述了用于处理查询的实际代数运算。

eg:对于联接运算符,其Physical Operation属性表示使用的联接算法(嵌套循环、合并、哈希),Logical Operation属性表示使用的逻辑联接类型(内联接、外联接、半联接,等)。当运算符没有相应的逻辑运算时,该项的值和物理运算显示的值相同。

c. Estimated Execution Mode: 估计执行模式,类似于实际执行模式,但显示估计值。

d. Storage: 存储,这告诉我们查询优化器将如何存储查询所提取的结果

e. Estimated Operation Cost: 执行该操作的成本

f. Estimated I/O Cost: 估计的IO成本,这告诉我们结果集的输入/输出操作的成本

g. Estimated CPU Cost: 估计的CPU成本,CPU处理该操作将产生的成本

Estimated I/O Cost 和 Estimated CPU Cost:运算符在特定资源(IO 或 CPU)上的估计开销。这两个测量值可以帮助你确定该运算符是IO密集,还是CPU密集。

h. Estimated Subtree Cost:估计子树大小,它表示到当前节点为止整个子树的累积总开销。

i. Estimated Number of Executions: 估计的执行次数

j. Estimated Number of Rows to be Read:预计要读取的行数,类似于MySQL的扫描行数

k. Estimated Number of Rows:该运算符预计返回的行数。在有些情况下,通过观察实际行数和估计行数之间的差异,可以找出因统计信息不足或其他原因而导致的开销问题。类似于MySQL中的返回行数

l. Estimated Row Size: 估计行大小,运算符中每行的存储大小

m. Ordered: 有序的,此属性确定是否要在排序状态下对其执行操作

n. Node ID: 节点ID,按right-to-left and 从右到左和top-to-bottom 从上到下的顺序在执行计划中调用操作员的顺序自动编号

四、执行计划图标

执行计划中包含78个可用的操作符,只需对常用的操作符进行分析了解即可。具体操作符内容如下:

链接

https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms175913(v=sql.90)?redirectedfrom=MSDN


相关文章

MySQL运维实战(4.4) SQL_MODE之STRICT_TRANS_TABLES和STRICT_ALL_TABLES

如果设置STRICT模式,则如果数据写入时,如果数据不符合字段定义(字符串超出长度、数值类型数据超出范围、违反not null约束等),SQL会报错。如果不设置STRICT模式,会对异常数据进行截断处...

MySQL性能优化(六)优化or条件

MySQL性能优化(六)优化or条件

优化器是数据库中非常核心,又非常复杂的一个组件。有的SQL,优化器选择的执行计划并不是最优的,通过改写SQL,可以帮助优化器找到最优的执行计划。where条件中的or子句,是比较容易出问题的一个场景。...

Hbase2.x 使用hbck2

Hbase2.x 使用hbck2

1、背景默认情况下apache hbase 使用hbck2时,无法使用-j 来加载hbck2的jar包,无法进行修复2、解决办法是由于默认情况下只使用自带的hbase hbck修复命令,大部分功能在2...

开源大数据集群部署(十五)Zookeeper集群部署

开源大数据集群部署(十五)Zookeeper集群部署

1、集群规划主机版本角色系统用户hd1.dtstack.com3.7.1followerzookeeperhd2.dtstack.com3.7.1leaderzookeeperhd3.dtstack....

EMR集群主机/opt/bignode目录占用巨大并持续增长

EMR集群主机/opt/bignode目录占用巨大并持续增长

问题现象:如下qa环境集群中,master节点出现如下磁盘告警处理步骤:登陆到该节点服务器,首先定位是哪个目录占用系统盘空间较大定位是由于:/opt/bignode/blocklet_indexing...

sqlserver迁移job步骤

sqlserver迁移job步骤

1)源服务器 sql server 找到sql server 代理,选中作业 2)按F7 弹出作业对象资源管理器,全选中作业 3)右击单出编写job 脚本窗口,将job 创建脚本保存到查询编辑器窗口 ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。