查看sql语句的执行步骤作为后端工程师,非常需要sql语句的优化。 但是,如果没有人说,初学者就不知道该如何优化,所以这个博客是看sql语句的执行计划,学习sql语句的优化
sql server这次选择的数据库是sql server,如果大家想看mysql的执行计划,也可以去百度搜索mysql如何看执行计划,这个博客主要分析如何执行计划
可以在navicat中查看说明计划
首先单击1执行你的sql语句,然后单击2解释你的sql语句
在server studio上,浏览文件,单击“新建”,单击“sql server compact查询”,连接到数据库,写出要查看的sql语句,然后单击“包括实际的执行计划”
索引分类分析合并索引
是在你的表中有索引的查询。 一般是集合索引的非集合索引
相反,非聚集索引意味着,在慈爱的流沙的表中没有索引的情况下,非聚集索引聚集索引的方式比非聚集索引方式好
显示索引分类在studio中显示
在logical operation中,如果clustered位于前面,则为聚合索引
在navicat中显示
如果logicalop中有clustered的开头,则为聚集索引
扫描方式Table Scan
名为Table Scan的扫描方法是遍历所有表查询的速度最快的索引扫描
索引扫描是指过滤部分数据,然后将其与索引seek匹配
索引seek根据索引条件直接定位到数据开销上来执行sql语句,每个语句都有三个开销
I/o成本
数据从磁盘加载到内存中,从内存中缓存,然后输出到APP应用程序的开销cpu开销
cpu开销是执行此sql语句所需的cpu子树的开销
查询优化程序执行此操作与同一子树中在此操作之前的所有操作的总开销密切相关,优化某些部分后,其他部分也相对较小
推定行数推定行数是指推定需要扫描行数,
在navicat中为Estimate
navicat估计每行的字节数为AvgRowSize
您可以根据这些参数查看每个执行步骤的执行计划,从而优化相应的sql语句