你也许会想,假如非聚集索引可以快速的找到所求的数据,但遗憾的是,非聚集索引却不包含所有所求列时该怎么办?这时SQL Server会面临两个选择,直接访问基本表去获取数据或是在非聚集索引中找到数据后,再去基本表获得非聚集索引没有覆盖到的所求列。这个选择取决于所估计的行数等统计信息。查询分析器会选择消耗比较少的那个。

一个简单的书签查找如图5所示。

图5.一个简单的书签查找

从图5可以看出,首先通过非聚集索引找到所求的行,但这个索引并不包含所有的列,因此还要额外去基本表中找到这些列,因此要进行键查找,如果基本表是以堆进行组织的,那么这个键查找(Key Lookup)就会变成RID查找(RID Lookup),键查找和RID查找统称为书签查找。

不过有时候索引查找所返回的行数过多导致书签查找的性能远不如直接进行扫描操作,因此SQL Server这时会选择扫描而不是书签查找。如图6所示。

图6.StateProvinceID列有非聚集索引,但由于返回行数过多,分析器会选择扫描而不是书签查找

转载于:https://www.cnblogs.com/flysun0311/archive/2013/03/12/2955907.html

你需要明白的SQL SERVER书签查找(Bookmark Lookup)相关推荐

  1. sql server键查找_如何查找SQL Server版本

    sql server键查找 In this article, we will explore how to find the SQL Server version details with vario ...

  2. SQL Server:查找周开始和结束日期时间

    目录 介绍 周默认开始日 设置周开始日 1.设置'DATEFIRST' 2.设置'DATEFIRST'并在任何逻辑操作后恢复为默认值 自定义助手函数 周函数 使用函数 参考 下载源代码 - 1.6 K ...

  3. SQL Server:查找表的生成或顺序

    目录 介绍 背景 临时表 查找表关系详细信息 查找表生成详细信息 查找第一个生成表 结果 表生成 表关系 不需要的场景 局限性 SqlServer_TableGeneration.zip - 2.6 ...

  4. SQL Server 数据库查找重复记录的几种方法

    http://www.hanyu123.cn/html/c61/6790.html 一.查某一列(或多列)的重复值.(只可以查出重复记录的值,不能查出整个记录的信息) 例如:查找stuid,stuna ...

  5. SQL server怎么查找某个时间段(多个时间段)的第一个值 或 最后一个值(这里举例查找每小时的第一个值)(Convert详细方法)

    我们就举例查找每小时第一次测量的PM2.5的值吧 如下图,我们可以看出,时间非常乱,毫无规律 select min(时间) from a2 group by CONVERT(nvarchar(13), ...

  6. 在SQL SERVER中查找用分隔符分隔的数据

    SELECT *FROM [DB_SCJC].[dbo].[tn_Manager]where CHARINDEX(',31,',','+JobID+',')>0 其中, CHARINDEX({1 ...

  7. sql server 约束 查找

    FK_ 外键 主键约束 SELECTtab.name AS [表名],idx.name AS [主键名称],col.name AS [主键列名] FROMsys.indexes idxJOIN sys ...

  8. SQL SERVER 索引优化——移除键查找(书签查找)或RID查找

    SQL SERVER 索引优化--移除键查找(书签查找)或RID查找 原创三空道人 最后发布于2018-12-21 16:45:27 阅读数 971  收藏 展开 SQL SERVER 索引优化 -- ...

  9. SQL Server中的执行引擎入门

    简介 当查询优化器(Query Optimizer)将T-SQL语句解析后并从执行计划中选择最低消耗的执行计划后,具体的执行就会交由执行引擎(Execution Engine)来进行执行.本文旨在分类 ...

最新文章

  1. Centos下MySQL安装与配置
  2. Java 8 开发的 4 大顶级技巧,你都知道吗 ?
  3. 高定位精度的交通标志识别----开源了
  4. C++ 对引用的深入理解
  5. 复盘无人业态的三点心得:起于共享单车,止于何?
  6. 奎屯电信助力智慧城市光网建设
  7. MongoDB学习笔记一ID自增长
  8. PyCharm 2020.1 稳定版发布
  9. Openstack Neutron 管理的网络资源
  10. glassfish_具有GlassFish和一致性的高性能JPA –第3部分
  11. Sprint Boot————@Qualifier、@Primary
  12. JS--我发现,原来你是这样的JS(三)(基础概念--灵魂篇)
  13. (Zotero)开源的文献管理器 真香
  14. EasyUI框架01——基础学习
  15. jdk8 window 64位安装包 微云网盘下载
  16. iTextSharp 添加文字内容
  17. python3+pip安装教程--centos6
  18. php 改变页面背景颜色,PHP改变背景颜色
  19. 九宫格拼图android代码,Android 多图上传后将图片进行九宫格展示的实例代码
  20. 四川一度智信:如何做好店铺数据运营?

热门文章

  1. vue3被删除的两个功能
  2. 学习编程你要记住以下几点
  3. html5 圆形加载进度条,纯css3超酷圆形Loading加载进度条特效
  4. java 开发者异常处理_Java异常处理和设计
  5. mysql的%rowtype_Oracle %TYPE 和 %ROWTYPE 使用
  6. CSS去除按钮激活的高亮边框(Button的点击出现黑色外边框的取消)
  7. 用eclipse制作简单网页
  8. app能不能跳转外部h5_利用条件编译在app端使用h5+(网页跳转 实例)
  9. 刷新存储器的容量单位是什么_SRAM的容量扩展
  10. 从一张表里选择一列加入到另一张表_将Excel多个文件汇总到一张表