对SQL Server数据库中三种查找数据方案的比较 |
本文标签:SQL Server数据库 以下的文章主要向大家描述的是SQL Server数据库中三种查找数据比较好用的方法比较,在SQL Server数据库中主要有以下的3种方法可以用来对数据进行查找,这三种方法分别是以下是: 表扫描(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)要略微要小些 。所以在实际中,尽量使用索引查找和索引扫描,而不要用表扫描 。 上述的相关内容就是对SQL Server数据库中三种查找数据方法的比较的描述,希望会给你带来一些帮助在此方面 。 |