`
xiebh
  • 浏览: 612702 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

SQL Server中三种查找数据方法的比较

阅读更多
在SQL Server中主要有有三种方式可以查找数据,分别是:
  • 表扫描(Table scan)
  • 索引扫描(Index scan)
  • 索引查找(Index seek)

Index seek中,SQL Server 沿着索引树(index tree)从根级(root level)向下进行索引键值匹配搜索,直到搜索到指定的行,然后使用存储在索引键值中的书签值(bookmark value)直接从数据页中检索匹配的数据行(这个书签值可以是行标识符(RID),或者聚集索引的键值)。

对一个索引扫描(Index scan),SQL Server搜索索引树中所有叶级(leaf level)中的行来进行可能匹配的查找。如果发现满足匹配的行,然后利用书签检索数据行。

最后一种是表扫描,SQL Server从数据表,可能是堆表(Heap Table)或者聚集索引的叶子页从头到尾进行扫描来查找数据。如果是数据表上已建立聚集索引,此时相当于索引扫描。

尽管前两者都使用了索引,从I/O代价角度来讲,索引扫描比索引查找的代价要高,但比表扫描(Table scan)要略微要小些。所以在实际中,尽量使用索引查找和索引扫描,而不要用表扫描。
分享到:
评论

相关推荐

    vs自带数据库sql server的中文插入乱码问题、查找当前数据库名

    解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...

    sqlserver-oracle 数据类型对照

    本文将详细比较SQL Server和Oracle数据库之间的数据类型对应以及常用函数的转换。 首先,我们来看SQL Server和Oracle的数据类型对照: 1. **数值类型**: - `bigint`在SQL Server中对应Oracle的`NUMBER(19)`,...

    sql server 查询当天,本周,本月,本年,30天内的数据的sql语句

    sql server 查询当天,本周,本月,本年,30天内的数据的sql语句

    SQL Server和国产数据库之间数据移植研究.pdf

    文档中涉及到SQL Server、Kingbase ES、Openbase等不同类型的数据库系统,并专注于它们之间的数据移植技术和方法。 首先,文档提到SQL Server与国产数据库之间的数据类型兼容性问题。在表1中,列举了Kingbase ES ...

    SQL Server连接字段的方法

    除了上述两种方法外,SQL Server还提供了丰富的字符串处理函数,可以帮助我们在处理字符串时更加灵活和高效: 1. **ASCII()**:返回指定字符的ASCII值。 2. **CHAR()**:将ASCII值转换为字符。 3. **LOWER()**:将...

    SQLSERVER数据库全数据库表数据查找

    在SQLSERVER数据库中,输入字符串,在所有的表数据中查询哪个表存在,方便探索未知的数据库表结构

    SQL Server 2005 数据转换服务中的模糊查找和模糊分组

    "SQL Server 2005 数据转换服务中的模糊查找和模糊分组" SQL Server 2005 数据转换服务(Data Transformation Services,DTS)中的模糊查找和模糊分组是两个强大的工具,旨在帮助用户简化数据仓库项目中的数据清理...

    SQL Server 中文帮助文档 chm格式

    1. **SQL Server架构**:了解SQL Server的核心组件,如数据库引擎、Analysis Services、Integration Services、Reporting Services等,以及它们在数据处理中的作用。 2. **安装与配置**:包括SQL Server的安装步骤...

    省市县三级(SQL Server数据

    另一种常见方法是使用递归层次结构,利用`hierarchyid`数据类型来表示和操作层级结构,这在SQL Server中特别有效。 3. **查询与分析**:利用这些数据,可以进行各种查询和分析,例如: - 查找某个省份下的所有城市...

    SQL Server查找表名或列名中包含空格的表和列实例代码

    本文主要给大家介绍的是关于SQL Server查找包含空格的表和列的相关内容,为什么会有这篇文章,是因为最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是...

    SQL server删除数据还原工具

    - 当内置的SQL Server功能无法满足需求时,可以借助第三方工具,如描述中的"LE_420_SqlServer",这类工具通常提供更强大的数据恢复功能,比如扫描已删除的记录,甚至在没有可用备份的情况下尝试恢复。 - 这些工具...

    SQLServer数据库迁移孤立用户的解决方法

    ### SQL Server 数据库迁移孤立用户的解决方法 在进行SQL Server数据库迁移时,经常会遇到一个棘手的问题:迁移完成后,部分用户无法与原有的登录名相对应,导致这些用户成为“孤立用户”。这种情况下,用户虽然...

    SQL Optimizer for SQL Server 10.0.3

    在SQL Server环境中,T-SQL(Transact-SQL)是用于数据操作的主要语言,而优化T-SQL代码对于提升系统性能至关重要。这款软件通过模拟执行不同查询计划,分析每个计划的资源消耗,包括CPU时间、I/O操作和内存使用,...

    阿里巴巴行业分类SQLSERVER数据

    阿里巴巴行业分类SQLSERVER数据是关于阿里巴巴平台上的商品和企业按照特定分类体系进行组织的数据资源。这个数据集包含了大量的行业信息,对于分析阿里巴巴平台上的商业活动、市场趋势以及商品分布具有重要价值。它...

    sqlserver2000 拼音码 五笔码

    SQL Server 2000是一款由Microsoft公司推出的数据库管理系统,它是SQL Server系列中的一个重要版本,主要应用于企业级数据存储和管理。在这个特定的压缩包文件中,包含的是关于SQL Server 2000的一些特殊字符、...

    sql server 2008 递归查询所有上级或下级数据

    通过以上分析可以看出,在SQL Server 2008中使用CTE进行递归查询是一种高效且易于理解的方法。通过定义基础情况和递归规则,可以轻松地获取所有上级或下级数据。然而,在实际应用过程中,还需要综合考虑性能等因素,...

    SQL Server对图像数据的存储机制介绍

    SQL Server 是一种关系型数据库管理系统,它提供了存储和管理大量数据的能力,包括图像等大二进制对象(BLOB)。本文主要介绍了SQL Server如何存储图像数据以及如何通过Visual Basic 6.0(VB)接口进行存取。 1. **...

    sql server通过连接服务访问oracle得到的数据不全的解放方法

    在SQL Server中,通过链接服务器访问Oracle数据库时可能会遇到数据不全或报错的问题,这主要是由于版本不兼容或者驱动程序支持不足导致的。本文将详细介绍两种可能的解决方案。 首先,我们来理解一下问题的根源。当...

    SqlServer2000数据源设置

    在Servlet中,配置和使用数据源的方式与普通Java类相同,只是Servlet通常需要在初始化方法(如`init()`)中完成JNDI查找,以确保在处理请求之前已经获取到数据源。 总之,配置SQL Server 2000数据源在JavaEE和...

    sql Server 表中字段二进制截取查找

    sql server 表中字段二进制截取查找,快速定位不合规字段

Global site tag (gtag.js) - Google Analytics