想请教一下各位大侠在expert one on one中看到,block中有个table directory,记录在此存放数据的表的信息。
这是不是说一个block中可能存放有来自不同表中的行数据?而且segment由extent组成,extent由block组成。
这是不是说明每个block应该明确属于一个segment的,即属于一个表的,那么就不会在一个block中同时有不同表中的数据了。。
所以感觉很晕,哪位大侠可以来给解答一下啊?

解决方案 »

  1.   


    oracle 数据块结构


    oracle数据块中的空闲空间
      

  2.   

    oracle块是存放数据的实际地方,
    一张表里面的数据可以存放在同一个数据块上,如常用的堆表
    也可以存放在不同的数据块上,如索引组织表
      

  3.   

    oracle块是存放数据的实际地方,
    一张表里面的数据可以存放在同一个数据块上,如常用的堆表
    也可以存放在不同的数据块上,如索引组织表同意三楼!!!
      

  4.   

    一个oracle block应该不能存储不同表中的数据吧。 oracle block已经是最小单元了, oracle的段在一次扩展的时候,已经把一个范围里面的数据块给划分给这个段了   我认为是不行。
      

  5.   

    而且segment由extent组成,extent由block组成。
    这是不是说明每个block应该明确属于一个segment的,即属于一个表的,那么就不会在一个block中同时有不同表中的数据了。。正解
      

  6.   

    那如果这样的话,table directory的作用是什么呢?
      

  7.   


    那一个block中是不是也可以存放多行数据啊?如果存放了多行数据,那么对该block种某一行数据进行update时是如何加锁的呢?锁了这个block还是那行数据?
      

  8.   

    记得block中可以存储不同表的数据,查查文档先.
      

  9.   

    貌似只有cluster table才会一个块中含有多个表的数据.