位置: 编程技术 - 正文

浅析SQL Server的聚焦使用索引和查询执行计划(sql-server)

编辑:rootadmin

推荐整理分享浅析SQL Server的聚焦使用索引和查询执行计划(sql-server),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql server有什么作用,sql server干嘛的,sql server的相关技术知识,sql server有什么作用,sql-server,sql server有什么作用,sql server有什么作用,sql server有什么作用,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

上一篇《浅析SQL Server 聚焦索引对非聚集索引的影响》我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解。

透过索引来看查询执行计划

我们首先来看看第一个例子

1、默认使用索引

上述我们看到第2个查询的所需要的开销是第1个查询开销的3倍,当然其中也涉及到第1个查询只是返回一列而第2个查询返回所有列,这其中也耗费一小部分性能。对于SQL Server查询而言,它内部会利用索引来走最短的路径获取最优的性能。我们能够注意到即使将orderid作为主键,但是返回数据并不是采用的主键所自动生成的聚集索引而是非聚集索引。相信有很多人主观上觉得返回主键而且查询没有查询条件应该是走主键的聚集索引,但是有时候事实并非如此,上一篇我们已经讨论过这个问题,不再叙述。在第2个查询中利用*返回数据则是利用主键的聚集索引。

浅析SQL Server的聚焦使用索引和查询执行计划(sql-server)

2、强制主键使用聚集索引

强制使用索引我们利用With(index(索引名称))来创建,如下:

我们从上可以看出默认返回主键列时利用非聚集索引,这里我们强制让它走聚集索引,而对于第2个查询就不用说了,此时二者的开销是相当的。

3、强制使用非聚集索引

我们继续往下看,对查询强制使用非聚集索引查找,如下:

由上可见,二者开销区别之大,对于使用非聚集索引查询1返回单列,而查询2返回所有列的速度快如此之多,通过以上默认使用索引、强制使用聚集索引、强制使用非聚集索引我们知道对于对于检索所有列结果集使用主键的聚集索引是最佳选择。

总结

通过上述演示我们知道即使创建了聚集索引也不会利用聚集索引检索结果,有时候使用非聚集索引比使用聚集索引会提供更好的性能,当然不能一概而论,二者皆有使用场景。当每一次面试时谈到数据库优化时,第一想到的是索引,然后就没有下文了,如何使用索引,怎么在不同场景使用不同的索引呢?在任何数据库中索引一直都是一个很大的话题且是一个复杂的内容,复杂的内容皆是由简单堆积而成,我们必须如蜗牛般去慢慢研究,抽茧剥丝,最终才会有一个好的效果。简短的内容,深入的理解。

标签: sql-server

本文链接地址:https://www.jiuchutong.com/biancheng/318998.html 转载请保留说明!

上一篇:浅析SQL Server 聚焦索引对非聚集索引的影响(sqlserver聚集函数)

下一篇:详解SQL Server中的数据类型(sql server的sql语句)

  • 已注册登记的机动车有什么情形的
  • 科技型中小企业申请流程
  • 应付票据是资产吗
  • 公司开办期间的装修费怎么会计处理
  • 购进生产设备的会计分录
  • 小规模缴纳增值税税控系统可以抵扣么
  • 企业为员工租房账务处理
  • 服务行业印花税税率
  • 建安企业预缴企业所得税税率
  • 客户退回发票会退回吗
  • 旧税号开出的发票能认证抵扣吗?
  • 企业所得税弥补亏损年限
  • 个人去税务局开居间费发票
  • 代增值税专用发票网上申请
  • 小额开专票
  • 为什么非征期不允许汇总上传
  • 单利和复利的计算区别
  • 工程税票怎么开需要交多少
  • 坏账处理的所得税税率
  • 分类所得申报要申报吗
  • 免税和退税的区别出口企业
  • 设计部工资计入哪个科目
  • 什么情况下征收车船税
  • 销售推广的常用形式
  • windows7旗舰版好用吗?
  • win10双系统删除linux
  • PHP:preg_replace_callback()的用法_PCRE正则函数
  • vue项目管理器
  • 土地增值税预征的计征依据=预收款-应预缴增值税税款
  • 自然人税收系统换电脑怎么同步数据
  • 税率变更为13%的文件
  • yolov5的使用
  • vue treegrid
  • ai绘图软件教程
  • 手把手教你用Excel制作考勤表
  • AttributeError: cannot assign module before Module.__init__() call
  • 律师事务所执业证
  • 收缴违约金
  • java默认访问权限修饰符
  • 企业发生销售退回时,不论销售退回的商品
  • 筹建养老院国家有哪些优惠政策?
  • 个体户可以开多少免税发票
  • 购进已经折旧提完的二手车
  • 收到小微企业退税怎么做账
  • 来料加工分录
  • 非财政补助结余在资产负债表中怎么填
  • 背书的行为
  • 物业公司广告费收入税率
  • 车船税款
  • 进口环节增值税额
  • 新收入准则 2021
  • 付款方和发票抬头不一致会计处理
  • 商品周转天数计算方法
  • 生产成本直接人工怎么算
  • 政府补助的内容
  • 集团公司对子公司总经理的绩效考核
  • 企业认缴的资金放哪里
  • 房地产开发成本和房地产开发产品
  • 房地产会计核算科目
  • mysql查询单条数据
  • ubuntu没有wlan0
  • centos的优缺点
  • win8怎么格式化硬盘
  • 让你的好朋友评价你图片
  • WIN10系统崩溃如何自救?
  • w10简易版
  • 关于我和鬼变成家人的那件事
  • jQuery实现别踩白块儿网页版小游戏
  • js筛选器
  • Android Broadcast
  • node mongoose
  • 原生js实现路由
  • shell 解析yml
  • Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded
  • js新年倒计时
  • python 正则 \s
  • 廊坊银行辟谣了吗
  • 纳税人对税务机关做出的征税行为不服的,必须
  • 企业所得税季报资产总额怎么填
  • 计提缴纳城建税分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设