数据查询部分sql
一、 看到执行计划有两种方式,对sql语句按Ctrl+L,或按Ctrl+M打开显示执行计划窗口每次执行sql都会显示出相应的执行计划性能
二、 执行计划的图表是从右向左看的3d
三、 SQL Server有几种方式查找数据记录blog
[Table Scan] 表扫描(最慢),对表记录逐行进行检查索引
[Clustered Index Scan] 汇集索引扫描(较慢),按汇集索引对记录逐行进行检查sql语句
[Index Scan] 索引扫描(普通),根据索引滤出部分数据在进行逐行检查im
[Index Seek] 索引查找(较快),根据索引定位记录所在位置再取出记录d3
[Clustered Index Seek] 汇集索引查找(最快),直接根据汇集索引获取记录数据
(若是有些sql执行很慢能够看一下执行计划是否包含太多“扫描”操做,若是有能够考虑为这些字段创建索引,创建索引切记不要再常常有更新操做的字段上创建,每次更新都会致使重建索引的操做,也会影响性能,0或1这种标识状态的字段由于大部分数据都是同样的创建索引也没有什么做用)图表
(索引就两种,1是汇集索引,2个非汇集索引,汇集索引每张表只能有一个,非汇集索引每张表能够有多个,主键Id就是典型的汇集索引,汇集索引是顺序排列的相似于字典查找拼音a、b、c……和字典文字内容顺序是相同的,非汇集索引与内容是非顺序排列的,相似字典偏旁查找时,同一个偏旁‘马’的汉字可能一个在第10页一个在第100页)
四、
⑴没有主键的表查询[表扫描]
⑵有主键的表查询[汇集索引扫描]
⑶创建非汇集索引的表查询[索引扫描+书签查找]
书签查找:经过非汇集索引找到所求的行,但这个索引并不包含显示的列,所以还要额外去基本表中找到这些列,因此要进行键查找,若是基本表在堆中则Key Lookup会变成RID查找,这两个查找统称为书签查找。
⑷创建非汇集索引并把其余显示列加入索引中[索引查找]
⑸创建非汇集索引并把其余显示列加入索引中并把汇集索引列看成条件[汇集索引查找]