update某条记录的时候,如果index key column也被update了,那么在找到index entry后,先对旧的index entry做一个pseudo delete,再插入一条新的index entry(new key+old rid), 那么找到RID后,在data page上把old column value替换成new column value。

在这种场景下,尽管data page没发生多大变化,但是每次update就会产生一个pseudo index entry,这样就加大了维护index的负担,pseudo index entry在物理上也是占据存储空间的,频繁的update操作就会产生大量的pseudo index entry, 从而导致index split,而DB2z也有机制去清理pseudo index page,这些都会导致lotch/lock on index, 过多的维护index必然导致index效率低下。

通过DSN1PRNT可以看到update前后data/index的情况

update之前data page log+ dsn1prnt

update

update之前index leaf page+dsn1prnt

update

update后index leaf page+ DSN1PRNT

update

update后data page log+DSN1PRNT

update        


相关文章:

  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2021-12-05
  • 2021-10-04
猜你喜欢
  • 2021-04-09
  • 2022-12-23
相关资源
相似解决方案