博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习如何看懂SQL Server执行计划(一)——数据查询篇
阅读量:5858 次
发布时间:2019-06-19

本文共 846 字,大约阅读时间需要 2 分钟。

 

 

一、数据查询部分

1、 看到执行计划有两种方式,对sql语句按Ctrl+L,或按Ctrl+M打开显示执行计划窗口每次执行sql都会显示出相应的执行计划

2、 执行计划的图表是从右向左看的

3、 SQL Server有几种方式查找数据记录

[Table Scan] 表扫描(最慢),对表记录逐行进行检查

[Clustered Index Scan] 聚集索引扫描(较慢),按聚集索引对记录逐行进行检查

[Index Scan] 索引扫描(普通),根据索引滤出部分数据在进行逐行检查

[Index Seek] 索引查找(较快),根据索引定位记录所在位置再取出记录

[Clustered Index Seek] 聚集索引查找(最快),直接根据聚集索引获取记录

(如果有些sql执行很慢可以看一下执行计划是否包含太多“扫描”操作,如果有可以考虑为这些字段建立索引,建立索引切记不要再经常有更新操作的字段上建立,每次更新都会导致重建索引的操作,也会影响性能,0或1这种标识状态的字段因为大部分数据都是一样的建立索引也没有什么作用)

(索引就两种,1是聚集索引,2个非聚集索引,聚集索引每张表只能有一个,非聚集索引每张表可以有多个,主键Id就是典型的聚集索引,聚集索引是顺序排列的类似于字典查找拼音a、b、c……和字典文字内容顺序是相同的,非聚集索引与内容是非顺序排列的,类似字典偏旁查找时,同一个偏旁‘马’的汉字可能一个在第10页一个在第100页)

4、  

⑴没有主键的表查询[表扫描]

⑵有主键的表查询[聚集索引扫描]

⑶建立非聚集索引的表查询[索引扫描+书签查找]

书签查找:通过非聚集索引找到所求的行,但这个索引并不包含显示的列,因此还要额外去基本表中找到这些列,所以要进行键查找,如果基本表在堆中则Key Lookup会变成RID查找,这两个查找统称为书签查找。

⑷建立非聚集索引并把其他显示列加入索引中[索引查找]

⑸建立非聚集索引并把其他显示列加入索引中并把聚集索引列当作条件[聚集索引查找]

 

转载地址:http://swljx.baihongyu.com/

你可能感兴趣的文章
Spring解析
查看>>
RedHat6 管理应用服务【11】
查看>>
stm32F10x复习-1
查看>>
Linux命令操作大全
查看>>
从周五开始香港主机特别慢,香港主机用户有同感吗?
查看>>
Ember.js 3.9.0-beta.3 发布,JavaScript Web 应用开发框架
查看>>
python标准库00 学习准备
查看>>
4.2. PHP crypt()
查看>>
commonservice-config配置服务搭建
查看>>
连接池的意义及阿里Druid
查看>>
ComponentOne 2019V1火热来袭!全面支持 Visual Studio 2019——亮点之WinForm篇
查看>>
Python递归函数与匿名函数
查看>>
loadrunner安装运行一步一步来(多图)
查看>>
监控工具htop的安装及使用
查看>>
Nodejs使用图灵机器人获取笑话
查看>>
Spring 任务调度 简单的,使用Schedule
查看>>
SQL 2005删除作业计划出错(DELETE语句与 REFERENCE约束"FK_subplan_job_id"冲突。)的解决...
查看>>
【Touch&input 】支持多个游戏控制器(18)
查看>>
我的友情链接
查看>>
SQL语句学习
查看>>