常用的數(shù)據(jù)庫有哪些 為什么sql server數(shù)據(jù)庫索引碎片整理?
為什么sql server數(shù)據(jù)庫索引碎片整理?本文需要您對SQL中數(shù)據(jù)的索引和存儲方法有一定的了解在SQL server中,存儲數(shù)據(jù)的最小單位是頁,每個頁可以容納8060字節(jié)的數(shù)據(jù)。頁面的組織是通過B
為什么sql server數(shù)據(jù)庫索引碎片整理?
本文需要您對SQL中數(shù)據(jù)的索引和存儲方法有一定的了解
在SQL server中,存儲數(shù)據(jù)的最小單位是頁,每個頁可以容納8060字節(jié)的數(shù)據(jù)。頁面的組織是通過B-樹結(jié)構(gòu)(如果表上沒有聚集索引,則為堆結(jié)構(gòu),本文不討論),如下圖所示:
在聚集索引B-樹中,只有葉節(jié)點(diǎn)實(shí)際存儲數(shù)據(jù),而其他根節(jié)點(diǎn)和中間節(jié)點(diǎn)各自僅用于存儲葉節(jié)點(diǎn)葉節(jié)點(diǎn)是一個頁,每個頁都是不可分割的,服務(wù)器在每個頁中存儲數(shù)據(jù)的最小單位是表的行。當(dāng)葉節(jié)點(diǎn)中新插入的行或更新的行不能容納當(dāng)前更新的行或插入的行時,將進(jìn)行分頁。在分頁過程中,將生成片段。
了解外部片段
首先,了解外部片段的“外部”是相對于頁面的。外部碎片是指分頁引起的碎片。例如,我想在現(xiàn)有聚集索引中插入一行,這會導(dǎo)致現(xiàn)有頁面空間不足以容納新行。這會導(dǎo)致分頁:
因?yàn)樵赟QL server中,新頁是隨著數(shù)據(jù)的增長而生成的,聚集索引要求行之間的連續(xù)性,所以在許多情況下,分頁和原始頁在磁盤上是不連續(xù)的