Sql Server中的表访问方式Table Scan, Index Scan, Index Seek

  次阅读 作者:智能小宝 来源:互联网 2016-02-16 10:35 我要评论(0)

Sql Server中的表访问方式Table Scan, Index Scan, Index Seek

0.参考文献

oracle表访问方式

Index Seek和Index Scan的区别以及适用情况

1.oracle中的表访问方式

在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问:

全表扫描(full table scan),直接访问数据页,查找满足条件的数据

通过rowid扫描(table access by rowid),如果知道数据的rowid,那么直接通过rowid进行查找

索引扫描(indexscan),如果一个表创建了索引,那么可以通过索引来找出我们想要的数据在表中的存放位置,也就是rowid,通过返回rowid然后用rowid来进行访问具体数据。

而索引扫描中又可分为索引全扫描(index full scan)、索引范围扫描(index range scan)和索引唯一扫描(indexunique scan)等。

2.sql server中clustered index scan,table scan,index scan

在sqlserver中也有类似的内容,这里就要将的是table scan,index scan以及index seek.

A table scan is where the table is processed row by row from beginning toend.

An index scan is where the index is processed row by row from beginning toend.

If the index is a clustered index then an index scan is really a tablescan.

总结:在sqlserver中,对表中数据从头到尾一行一行的进行出来就是表扫描。这里的处理我们可以理解为sql中where子句的条件判断。我们需要遍历表中的每一行,判断是否满足where条件。最简单的tablescan是select * from table。

索引扫描就是对索引中的每个节点从头到尾的访问。假设我们的索引是B树结构的,那么index scan就是访问B树中的每一个节点。

假如索引是聚集索引,那么B树索引的叶子节点保存的是数据页中的实际数据。假如索引是非聚集索引,那么B树叶子节点保存的是指向数据页的指针。

(ps:以下2.1-2.6于2012-9-4补充)

2.1实验数据准备

在介绍完clustered index scan,table scan和indexscan以后,我们将通过实验来表述会在什么情况下使用这些表扫描方式。我们将使用AdventureWorks2008R2这个sampledatabase进行实验,首先准备实验数据,TSQL如下所示:

View Code

--准备测试数据--------------------------------------------------

use adventureworks2008R2

go

--如果表已存在,删除

drop table dbo.SalesOrderHeader_test

go

drop table dbo.SalesOrderDetail_test

go

--创建表

select * into dbo.SalesOrderHeader_test

from Sales.SalesOrderHeader

go

select * into dbo.SalesOrderDetail_test

from Sales.SalesOrderDetail

go

--创建索引

create clustered index SalesOrderHeader_test_CL

on dbo.SalesOrderHeader_test (SalesOrderID)

go

create index SalesOrderDetail_test_NCL

on dbo.SalesOrderDetail_test (SalesOrderID)

go

--select * from dbo.SalesOrderDetail_test

--select * from dbo.SalesOrderHeader_test

declare @i int

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...