以下的文章主要是介绍三种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)要略微要小些。所以在实际中,尽量使用索引查找和索引扫描,而不要用表扫描。
以上的相关内容就是对三种SQL Server查找数据方法的比较的介绍,望你能有所收获。
以上的相关内容就是对三种SQL Server查找数据方法的比较的介绍,望你能有所收获。
【编辑推荐】