oracle不象sql server
它是插入空的可用的块(即在free list列表中的可用的块)
比如:如果以前的一些数据delete了,那这个数据块又可用了(当然满足一定的条件),那以后要插入的时候,就有可能插入到这个数据块的.
可想而知了,不会一直插在最后的.

解决方案 »

  1.   

    oracle 中数据是根据你插入数据的主键,确定存放数据的位置
      

  2.   

    如果有记录被删除,则新插入的记录就放在删除过记录的地方,你看以下记录的RowId就知道了。如果你要顺序,加一个可以排序的列不就行了。
      

  3.   

    不同意楼上的观点。
    1、首先DELETE后的物理空间,ORACLE是不会再用的。
    除非你整理TABLESAPCE或者TRUNCATE TABLE。
    2、其实DELETE后ROWID是不可以重用的,INSERT 后的记录一定是放在表中的最后一行。
    3、问题应该是ORACLE的排序问题。
      

  4.   

    Oracle will check the free list , if there is block in freelist , 
    Oracle will put your record into that block and it might not be the last physical block . ( as the previous block might be in the freelist because of updation and deletion)