Oracle数据库:查询结果的顺序

时间:2013-03-05 09:32:17

标签: oracle oracle10g

假设有一个包含列的表:Id(主键),myTime,myName

然后执行查询:

select * from mytable order by myTime

但是myTime中有几个具有相同值的条目。使用哪个订单来安排结果?我在几台机器上试过这个例子,结果不同。具有相同myTime值的结果根据机器的不同排序(尽管两台机器使用相同版本的Oracle DDBB 10g)。

感谢。

1 个答案:

答案 0 :(得分:1)

顺序将取决于表的访问方法,可能还有排序算法,但总的来说(并不总是,我认为)你会看到隐含的排序顺序是rowid如果是index已用于提供排序顺序。如果使用完整扫描和排序,那么我不想猜测。

如果需要确定性排序顺序,请按主键或唯一键添加订单。在您有应用程序分页的某些情况下,ROWID的辅助排序顺序可能会有所帮助。