返回数说广场
1
Oracle是如何使用4层树状结构(3层位图块+数据块)来确定向哪个块中插入的呢?
第一步,查找数据字典(就是dba_segments数据字典视图的基表),确定段头位置。
第二步,在段头中找到第一个L2块位置信息。
第三步,到L2块中根据执行插入操作进程的PID号,做HASH运算,得到一个随机数N,在L2中,找到第N个L1块的位置信息。
第四步,到第三步中确定的L1块中,再根据执行插入操作进程的PID号,做HASH运算,得到一个随机数M,在L1中找到第M号数据块。
第五步,向第M号数据块中插入。
L3块中虽然可以有多个L2块,但插入操作不会选择多个L2块,每次只会选择同一个L2块。直到这个L2块下面的所有数据块都被插满了,才会选择下一个L2块。
在L2中选择某个L1的时候,就是随机的了。不同Session,只要有可能,就会被分配到不同的L1中。在L1中找数据块时也是一样。
0
1 201
分享
评论
热门数说



