MSSQL执行计划简介


一、MSSQL执行计划功能

执行计划的功能主要是为sql语句操作提供合适的访问路径,使sql语句按照执行计划所拟定的路径和执行方式运行。
例:

select A.info,b.shopName from A left join B on A.keyId = b.keyId where A.keyId =5


当mssql 服务器接收到此sql语句时,数据库引擎首先会根据表A的查询条件keyId,检索此字段是否是索引,此索引内容列是否包含字段
info字段,决定是否进行继续扫描表或根据聚集索引扫描表,最后根据表A的返回结果去关联B表,关联B表时,此时需要分析B表keyId是否为索引列,索引列内容列是否包含shopName,来决定sql的获取数据的方式

我们把以上sql引擎分析数据库执行方式的行为称之为”执行计划”



二、MSSQL执行计划选定的依据

常见的MSSQL执行计划的选定依据:
1 查询条件列是否为索引列
2 无查询条件多表关联,是否存在索引,决定是否走索引扫描还是普通全表扫描
3 返回结果指定列是否为索引内容包含列
4 是否存在多余列的返回
5 表格特定条件的统计信息