1
假設我有一個堆表列(ID,姓名,性別,年齡)如何聚集索引的工作時,它具有相同值的許多鍵
如果我有一個非聚集索引列在「名稱」中,如果我有10個名爲「Lucas」的人,會發生什麼?索引是否知道他指的是哪一個「盧卡斯」? 如果有那麼多Lucas'在B-Tree樹葉的不同頁面上分開,索引是否仍然知道如何找到它們以及他必須爲每個「Lucas」指出哪一行?
假設我有一個堆表列(ID,姓名,性別,年齡)如何聚集索引的工作時,它具有相同值的許多鍵
如果我有一個非聚集索引列在「名稱」中,如果我有10個名爲「Lucas」的人,會發生什麼?索引是否知道他指的是哪一個「盧卡斯」? 如果有那麼多Lucas'在B-Tree樹葉的不同頁面上分開,索引是否仍然知道如何找到它們以及他必須爲每個「Lucas」指出哪一行?
•如果表是堆,這意味着它沒有聚集索引,則行定位器是指向該行的指針。指針由文件標識符(ID),頁碼和頁面上的行編號構成。整個指針被稱爲行ID(RID)。
http://technet.microsoft.com/en-us/library/ms177484(v=sql.105).aspx
真:所有的表**應該有**的主聚集鍵....堆是數據熱氣騰騰的一堆 - *** ***不推薦在所有! – 2014-12-04 06:08:02
@marc_s,擁有這個主聚簇鍵將防止無用的組合非聚簇索引,對吧?例如,如果我在我編寫的NC索引中有鍵(ID asc,FirstName asc)。由於ID從不重複,FirstName將永遠不會被排序,因此它是無用的。因此,這裏最好的事情是使用ID中的聚集索引和例如帶有FirstName和LastName的組合NC索引。我對嗎? – Mucida 2014-12-04 12:04:15