接上文,當CHECK INDEX發現index上有錯的時候,當確認data是好的時候,可以執行REBUILD INDEX。
REBUILD INDEX的工作機制是從data裏面抽取key column的數據,排序,然後重新build一個新的index,從而修正錯誤的index.
REBUILD INDEX之前
可以看到在PGBIGRBA A96B8C4D的時候index entry有duplicate key,在CHECK INDEX一文中也報了CHECK INDEX報了INDEX有什麼樣的問題,這裏我們看一下在REBUILD INDEX後的結果。
REBUILD INDEX之後
當諸如REBUILD INDEX之類的UT改了page之後,PGBIGRBA就變成0,key也從C1變成了C2。
另外,在REBUILD INDEX後當DB2再次對page做update的時候, PGBIGRBA應該比REBUILD之前大才對,可以做個試驗看下。
再次insert一條數據後,DB2會在該page上再次insert index entry
看當insert新的index key後,page 3的PGBIGRBA從REBUILD之前的A96B8C4D漲到了A97416F6。
其實這個PGBIGRBA/PGLOGRBA是一個時間戳,描述的是這個page上一次被update的時間,隨着時間的流逝這個值自然是增大的,這麼講究很好理解了。