读书人

oracle 无order by , 默认排序有关问题

发布时间: 2012-10-19 16:53:35 作者: rapoo

oracle 无order by , 默认排序问题 以及oracle的问题
Oracle会根据具体的数据块的存储返回记录.
oracle数据库是没有默认排序的?
要排序必须加上order? by?
因为oracle是按块进行读取数据的?
如果数据按顺序存储,则可能使读取出来的数据是按顺序的,给用户误解为默认排序
oracle没有进行任何排序操作,rowid表示的是数据存放的数据块内部地址,如果没有要求排序,oracle会顺序的从数据块中读取符合条件的数据返回到客户端,不过看起来好像是按照rowid排序似的

如果数据量足够大,即使相同的语句,都有可能不同的结果。
一般而言
表是堆表
所以是无序的
他是按照也即物理存放顺序来读取的
rowid 是自动随行生成的?另:oracle?的rowid是啥意思
---------------------------

rowid是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列
用来唯一标识一行记录。
rowid是存储每条记录的实际物理地址,对记录的访问是基于ROWID。
---------------------------

每条记录的物理地址,
对数据库中记录行的作快检索方式就是使用rowid来进行查找。
---------------------------

唯一标识一行记录
select?rowid,*?from?表名
试一下,你就明白了
---------------------------

rowid就象是邮递员送信时要找的信封上的家庭地址一样,每个rowid都不会重复,oracle查找通过它可以更快地查找到数据.
---------------------------

rowid是一个伪列,对应?块号,行号,行的序号..
---------------------------
个人不是dba。上的文章是转载的,其他的东西请知道的补充下,对这一块有点迷惑。

读书人网 >编程

热点推荐