位置: 编程技术 - 正文

浅析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语句)

  • 小规模纳税人报税时间
  • 附加税税率分别是多少
  • 税务专家田野
  • 什么情况下进项税额需要转出
  • 资产负债表中应付职工薪酬是负数
  • 外商投资企业的组织形式,组织机构
  • 个体户认定一般纳税人
  • 物业代收费:有关法律
  • 企业养老金计算公式举例说明
  • 查增应纳税所得额怎么算
  • 机器设备如何计提折旧
  • 股息和资本利得的区别
  • 进项抵扣怎么操作
  • 已经计提的坏账准备可以转回吗
  • 劳动合同的履行包括什么原则
  • 印刷费怎么开发票
  • 限售股所得税的优惠政策
  • 所得税预缴申报表
  • 贸易公司购买汽车的发票可以用抵公司的税吗
  • 金融企业的成本核算方法
  • 出售固定资产累计折旧的账务处理
  • 固定资产发票可以抵税吗
  • 坏账准备的计提应当关注
  • 支付给董事的董事费怎么征收个人所得税?
  • 12306打不开怎么回事苹果手机
  • 调整低电量通知怎么设置
  • 文件夹属性没有安全
  • 代发工资开的发票可以抵扣吗?
  • fast processing
  • 在php中,字符串有哪些表示形式
  • 哪些情形不属于伪现金
  • pniopcac.exe是什么
  • 培养自己的php编程能力
  • 旅游 服务业
  • vue-cli typescript
  • css加载是异步的吗
  • cookie set
  • css中权重值是什么意思
  • 印花税账务处理会计分录
  • 增值税发票2年了还能开吗
  • 如何补缴以前年度的税
  • jquery ui table
  • 扣供应商货款怎么入账
  • 运输服务的增值税税率到底是6还是9
  • 甲供工程范围
  • 15个postgresql数据库实用命令分享
  • 预付卡的增值税处理
  • 增值税发票查询全国统一发票查询平台
  • 给客户退款怎么说
  • 应发工资账务处理
  • 公司充话费
  • 资产负债表其他应收款计算公式
  • 母子公司之间的借款
  • 企业土地补偿款如何做账
  • 收到货款确认收入还是开好发票确认收入
  • 进项税额不得从销项税额中抵扣项目是什么意思
  • 分公司内部管理模式
  • 申报表怎么更正
  • 固定资产当月计提
  • freebsd怎么用
  • win1020h2累积更新
  • 从哪里看windows是多少位的
  • win10驱动备份在哪里
  • WINDOWS10系统怎样看主板
  • 在linux系统中,用来存在系统所需
  • linux的截图工具
  • cocos2dx schedule
  • android开发手册
  • opengl语言
  • easyui导出excel表格
  • c语言 ls
  • javascript怎么用
  • java 同步方法和同步代码块区别
  • js面向对象面试题
  • 深入理解中国式现代化
  • JAVAscript字符串类型单引号和双引号意一样吗
  • python的for函数
  • 金融机构取得的利息收入应缴纳增值税的
  • 在发票软件里开出发票第二天打印可以么?
  • 固定资产原值包括哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设