企业400电话
微网小程序
AI电话机器人
电商代运营
全 部 栏 目
企业400电话
网络优化推广
AI电话机器人
呼叫中心
网站建设
商标✡知产
微网小程序
电商运营
彩铃•短信
增值拓展业务
SQL 查询性能优化 解决书签查找
先来看看什么是书签查找:
当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求。对一个有聚簇索引的表来说是一个键查找(key lookup),对一个堆表来说是一个RID查找(RID lookup)。这种查找即是——书签查找。
书签查找根据索引的行定位器从表中读取数据。因此,除了索引页面的逻辑读取外,还需要数据页面的逻辑读取。
从索引的行定位器到从表中读取数据这之间会产生一些额外的开销,本文就来解决这个开销。
先看下我的测试表结构:
其中可以看出 有一个 聚簇索引 PK_UserID 和一个 非聚簇索引IX_UserName。
看看产生书签 查找的效果:
select UserName,Gender from dbo.UserInfo where UserName='userN600'
按上面的 SQL 产生执行计划 可以看出, 会产生一个书签查找(Key Lookup),如下图
如果把上面的 SQL 改写成
select UserName from dbo.UserInfo where UserName='userN600'
可以看出 书签查找 没有了。
本SQL 产生书签查找的 主要原因是 本SQL 优化器会选择 非聚簇索引IX_UserName,来执生SQL 。IX_UserName 索引不包含 Gender 这个字段 于是产生个从索引到 数据表的 一个 查找 即 书签查找。
解决书签查找:
方法一、使用一个 聚簇索引
对于聚簇索引, 索引的叶子页面和表的数据页面相同,因此,当读取聚簇索引 键列的值时,数据引擎可以读取其它列的值而不需要任何行定位,这样就解决了书签查找。
对于这句SQL ( select UserName,Gender from dbo.UserInfo where UserName='userN600')解决了书签查找的办法就是在UserName 上 建聚簇索引 ,因为一个表只有一个聚簇索引 ,这就意味着删除现有聚簇索引(PK_UserID),将会造成其它从表 中的外键约束 要发生更改,这需要考一些相关的工作,可能严重影响依赖于现有聚簇索引的其它查询。
方法二、使用一个 覆盖索引
覆盖索引 是在所有为满足SQL 查询不用到达基本表所需的列 建立的非聚簇索引。如果查询遇到一个索引并且完全不需要引用底层数据表,那么 该索引可以被认为是 覆盖索引。
对于这句SQL ( select UserName,Gender from dbo.UserInfo where UserName='userN600') 解决书签查找的办法就是 在非聚簇索引IX_UserName 里包含 Gender 字段。
也就是在 建索引时 用INCLUDE 语句,具体操作如下
用INCLUDE 最好在 以下情况下使用:
1、不希望增加索引键的大小,但是仍然可以建一个 覆盖索引;
2、打算索引一种不能被索引的数据类型(除了文本、NTEXT和图像);
3、已经超过了一个索引的关键字列的最大数量
方法三、使用 索引连接
索引连接 是使用多个索引之间一个索引交叉来完全覆盖一个查询。如果覆盖索引变的非常宽,那么就可以考虑索引连接。
对于这句SQL ( select UserName,Gender from dbo.UserInfo where UserName='userN600' and Gender=1)可以在 Gender 上 建一个非聚簇索引就行了。
对于这个例 子,可能 SQL 优化器并没有同时 选 用非聚簇索引IX_UserName 和 我们新建立在Gender 上的索引,这时我们可以告知 SQL 优化器 同时使用 这个两上索引,操作如下
select Gender,UserName from UserInfo with(index (IX_Gender,IX_UserName)) where UserName='jins' and Gender=0
好了就写这么多吧.
您可能感兴趣的文章:
1亿条记录的MongoDB数据库随机查询性能测试
MongoDB查询性能优化验证及验证
Sql语句与存储过程查询数据的性能测试实现代码
数据库查询性能需注意几点经验
MongoDB数据库查询性能提高40倍的经历分享
上一篇:
编写SQL需要注意的细节Checklist总结
下一篇:
SQL Server 数据库备份和还原认识和总结 (一)
相关文章
SQL 查询性能优化 解决书签查找
先来看看什么是书签查找: 当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求。对一个有聚簇索引的表来说是一个键查SQL,查询,性能,优化,解决,...
使用有趣的自定义标记布局页面
今天我们来学习,如何使用有趣的自定义标记来布局页面。有的朋友可能有这样的疑问,...
智能外呼系统源码(智能外呼系统源码输入)
本文目录一览: 1、电话自动外呼系统2、什么是智能外呼营销系统?求详细解答3、智能...
电销系统封卡严重怎么办
电销系统封卡严重怎么办 电销卡是什么卡?电销卡是专门针对电销业务应运而生的一种...
微信代运营公司中文章标题的书写规矩有哪些?
随着社会的进步和互联网行业的高速发展,传统的信息传播方法也逐步的发生了质的改...
400电话如何申请上海
在现代商务通讯中,对于各种规模的企业而言,都不能或缺客户服务热线,即俗称的“...
聊城营销电销机器人招商(聊城营销电销机器人招商电话
今天给各位分享聊城营销电销机器人招商的知识,其中也会对聊城营销电销机器人招商...
电销卡骗局揭秘大全图片(电销卡是什么卡?谁知道?)
本文目录一览:1、揭秘老年会销骗局,子女们该做点什么才能防止老人被骗?2、大学办电...
400电话的用途企业使用400电话的特点表现有哪些?
对于许多企业来说,在经营过程中,必须注意建立外部形象和适当的宣传方法,以确保...
360二季度安卓系统安适陈诉显示 北方省份成漏洞重灾区
在移动支付时代,手机漏洞意味着什么?一个忘了取出ATM的银行卡、一部没有锁的豪车...
移动物联卡价格怎么样?物联网流量卡很贵吗
随着移动物联卡应用在智能硬件设备上给社会产生的巨大便利,越来越多人开始认识到...
深圳电销卡购买-不封号电销卡办理
深圳电销卡购买-不封号电销卡办理 巨人通信主营企业通信业务,专售电销卡、电销专...
Win10系统更改开始菜单背景颜色的操作步骤
开始菜单是Win10系统的一大亮点,为什么这么说呢?因为在Win10中不仅有菜单磁贴等新功...
郑州抗封号AI机器人排行-点击查看
郑州抗封号AI机器人排行在成本方面,企业会选择后者,对于劳动力来说,一旦工作效...
圆通电话机器人厉害(圆通客服像机器人)
本文目录一览: 1、圆通客服都是机器人,我快递三天了,物流信息没有更新,打圆通...
高德添加店铺怎么撤销?高德店铺怎么撤销?
店铺不做了怎么撤销地图的位置? 4.点击地点报错,选择地点报错选项, 5.输入要撤下...
SQL 查询性能优化 解决书签查找
先来看看什么是书签查找: 当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求。对一个有聚簇索引的表来说是一个键查SQL,查询,性能,优化,解决,...
咨 询 客 服