https://www.csdn.net/tags/MtzaAg5sMjE5NjctYmxvZwO0O0OO0O0O.html
SQL执行计划
为了帮助开发人员根据数据表中现有索引情况,了 解自己编写的SQL的执行过程、优化SQL 结构。通过执行计划定位性能问题,定位后就通过建立索引、修改sql等解决问题。
一、 使用SQL执行计划
看SQL语句执行计划有三种方式:①快捷键按Ctrl+L;②选中要执行的SQL然后点击右键,弹出的菜单里面选“显示估计的执行计划”;③按Ctrl+M打开显示执行计划窗口,选择每次执行SQL都会显示出相应的执行计划
二、 查看SQL执行计划
执行计划的图表是从右向左看的
三、 解读SQL执行计划
SQL Server查找数据记录的几种方式:
1.Table Scan--表扫描(最慢),对表记录逐行进行检查,对于没有索引或者查询条件不走索引时会进行全表扫描;
2.Clustered Index Scan--聚集索引扫描(较慢),按聚集索引对记录逐行进行检查,对有主键/聚集索引的表进行无条件查找或者使用主键/聚集索引过滤;
3.Index Scan--索引扫描(普通),根据索引滤出部分数据在进行逐行检查;
4.Index Seek--索引查找(较快),根据索引定位记录所在位置再取出记录,建立非聚集索引并把其他显示列加入索引中;
5.Clustered Index Seek--聚集索引查找(最快),直接根据聚集索引获取记录,建立非聚集索引并把其他显示列加入索引中并把聚集索引列当作条件;
6.Key Lookup--书签查找:通过非聚集索引找到所求的行,但这个索引并不包含显示的列,因此还要额外去基本表中找到这些列,所以要进行键查找,如果基本表在堆中则Key Lookup会变成RID查找。
7.RID--书签查找:同上
如果有些SQL执行很慢,可以用执行计划看一下是否包含太多“扫描”操作,可以考虑为这些字段建立索引,建立索引切记不要再经常有更新操作的字段上建立,每次更新数据和插入数据都会导致重建索引的操作,会增加索引的维护成本。
搜索
复制