查看sql语句的执行计划

查看sql语句的执行步骤

作为后端工程师,sql语句的优化是非常有必要的,但是如果没有人来说的话,初学者是不知道该如何优化比较好,所以这篇博客就是教大家来看sql语句的执行计划,进而学会优化sql语句

sql server

这次选用的数据库是sql server,如果大家想要看mysql的执行计划,也可以上百度去找mysql如何查看执行计划,但是这篇博客主要是分析怎么执行计划。

查看执行计划

在navicat上面查看

在这里插入图片描述
先点击1,运行你的sql语句,然后再点击2,解释你的sql语句

在server studio上面查看
  1. 先点击文件
  2. 再点击新建
  3. 再点击 sql server compact查询
  4. 然后连接你的数据库
  5. 写上你需要查看的sql语句
  6. 然后点击包括实际执行计划
    在这里插入图片描述

分析

索引的分类

  1. 聚集索引
    就是你的表有索引的查询,一般都是聚集索引
  2. 非聚集索引
    相反,非聚集索引就是当你的表中没有索引时,就是非聚集索引

聚集索引的方式会优于非聚集索引方式

查看索引分类

在studio中查看

在这里插入图片描述
在logical operation中,如果有clustered在前面时就是聚集索引

在navicat中查看

在这里插入图片描述
在logicalop中如果有clustered开头就是聚集索引

扫描方式

  1. Table Scan
    Table Scan这种扫描方式是遍历全表查询,速度数最慢的一种
  2. Index Scan
    Index Scan这种是筛选一部分数据,然后再进行匹配
  3. Index Seek
    Index Seek这种是依据索引条件,直接定位到数据

开销

执行sql语句分别有三种开销

  1. I/o开销
    数据从磁盘加载到内存,再从内存中缓存,输出到应用端的开销
  2. cpu开销
    cpu开销,是指运行这段sql语句所占的cpu
  3. 子树开销
    查询优化器执行此操作及同一子树内位于此操作之前的所有操作的总开销

这两个开销是精密相连的,一旦优化一部分,另外一部分也会相对减少

估计行数

估计行数,就是估计需要扫描的行数,
在navicat中是Estimate

估计每一行的字节数

在navicat中是AvgRowSize

根据以上这些参数查看每个执行步骤的执行计划,就可以对应的优化我们的sql语句了
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当分析 PostgreSQL SQL 语句的执行计划时,可以使用 EXPLAIN 关键字来获取查询计划的详细信息。EXPLAIN 关键字可以与 SELECT、INSERT、UPDATE 或 DELETE 语句一起使用。 执行 EXPLAIN 查询时,PostgreSQL 会返回一个描述查询计划的结果集。这个结果集包含了查询计划中每个步骤的详细信息,包括使用的索引、连接类型、排序方式等等。 以下是分析 PostgreSQL SQL 语句执行计划的步骤: 1. 在 SQL 语句前加上 EXPLAIN 关键字,例如:EXPLAIN SELECT * FROM table_name; 2. 执行该 SQL 语句,获取查询计划的结果集; 3. 分析结果集中的每一行,了解查询计划中每个步骤的执行顺序和详细信息; 4. 根据查询计划的结果,优化 SQL 语句或数据库结构,以提高查询性能。 在分析查询计划时,可以关注以下几个重要的信息: - 节点类型:描述了执行计划中每个步骤的类型,例如 Seq Scan(顺序扫描)、Index Scan(索引扫描)、Nested Loop(嵌套循环连接)等; - 访问方法:描述了节点类型所使用的具体访问方法,例如使用哪个索引、使用哪种连接算法等; - 过滤条件:描述了节点类型所使用的过滤条件,可以帮助判断是否需要添加索引或优化查询条件; - 排序方式:描述了节点类型所使用的排序方式,可以帮助判断是否需要添加排序索引; - 执行计划的顺序:描述了查询计划中每个步骤的执行顺序,可以帮助判断是否存在性能瓶颈。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值