select返回记录的顺序[4]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 youbo2004 的 blog

根据我们的试验,假设现在表中有三条记录假设文件号相同,按块号,行号排列如下:

108 0

108 1

108 2

删除中间一条记录后,得到

108 0

108 2

再增加一条记录,可能会得到

108 0

108 1  <---新增加的记录

108 2

也可能是

108 0

108 2

108 3  <---新增加的记录

两种情况均有可能出现,取决于oracle块内的分配算法。关于该情况的更深入的分析可以参见文献2

2.后插入的记录的块号有可能大,有可能小

       插入记录的块号并不是线性增加的,而是受freelist控制。有关freelist的理论和算法可以参见文献1

      

因此对于全表扫描可以得出以下结论:

1.         oracle select * from mytable不能保证返回的记录顺序是按插入的先后顺序,而是按rowid顺序。

本文关键:select返回记录的顺序
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top