對(duì)SQL Server數(shù)據(jù)庫(kù)中三種查找數(shù)據(jù)方案的比較
以下的文章主要向大家描述的是SQL Server數(shù)據(jù)庫(kù)中三種查找數(shù)據(jù)比較好用的方法比較,在SQL Server數(shù)據(jù)庫(kù)中主要有以下的3種方法可以用來(lái)對(duì)數(shù)據(jù)進(jìn)行查找,這三種方法分別是以下是:
表掃描(Table scan)
索引掃描(Index scan)
索引查找(Index seek)
Index seek中,SQL Server 沿著索引樹(shù)(index tree)從根級(jí)(root level)向下進(jìn)行索引鍵值匹配搜索,直到搜索到指定的行,然后使用存儲(chǔ)在索引鍵值中的書(shū)簽值(bookmark value)直接從數(shù)據(jù)頁(yè)中檢索匹配的數(shù)據(jù)行(這個(gè)書(shū)簽值可以是行標(biāo)識(shí)符(RID),或者聚集索引的鍵值)。
對(duì)一個(gè)索引掃描(Index scan),SQL Server搜索索引樹(shù)中所有葉級(jí)(leaf level)中的行來(lái)進(jìn)行可能匹配的查找。如果發(fā)現(xiàn)滿(mǎn)足匹配的行,然后利用書(shū)簽檢索數(shù)據(jù)行。
***一種是表掃描,SQL Server數(shù)據(jù)庫(kù)從數(shù)據(jù)表,可能是堆表(Heap Table)或者聚集索引的葉子頁(yè)從頭到尾進(jìn)行掃描來(lái)查找數(shù)據(jù)。如果是數(shù)據(jù)表上已建立聚集索引,此時(shí)相當(dāng)于索引掃描。
盡管前兩者都使用了索引,從I/O代價(jià)角度來(lái)講,索引掃描比索引查找的代價(jià)要高,但比表掃描(Table scan)要略微要小些。所以在實(shí)際中,盡量使用索引查找和索引掃描,而不要用表掃描。
上述的相關(guān)內(nèi)容就是對(duì)SQL Server數(shù)據(jù)庫(kù)中三種查找數(shù)據(jù)方法的比較的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】