日期:2014-05-17  浏览次数:20819 次

表中数据的排列顺序问题
Oracle中表里边的数据默认是按照聚集索引的顺序排列的吗?假定表中有主键和聚集索引。
索引?数据顺序 索引,数据顺序

------解决方案--------------------
数据库select的默认排序
 
oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用。所以一个无order by查询结果看起来也可能是个杂乱无章的。


要想有序,一定要加上 order by ,不要指望默认排序
------解决方案--------------------
除了索引表,Oracle存储数据不讲究先后顺序,基本按照插入顺序存储。聚族表则把相同聚族值的行存放在相同或相邻的数据块中。