接上文,当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的时间,随着时间的流逝这个值自然是增大的,这么讲究很好理解了。