新建一张表,并顺序插入数据,然后查询,查询出来的数据是有序的吗?
我测过新建一张100万条数据的表,是有序的。

解决方案 »

  1.   

    印象中oracle是无序存储的,所以不用order by的查询也应该是无序的。
    数据存储在块中,视存储状况不同,查询结果应当不同。
    有时候看起来像按rowid排序,但是随着数据被更改,删除,rowid也会变更成其他数据。没有order by的查询应当是杂乱无章的。
    CREATE TABLE test(id NUMBER(5),sname VARCHAR2(30));INSERT INTO test VALUES (1,'test1');
    INSERT INTO test VALUES (2,'test2');
    INSERT INTO test VALUES (3,'test3');
    INSERT INTO test VALUES (4,'test4');
    INSERT INTO test VALUES (5,'test5');SELECT * FROM test;
    ID SNAME
    1 test1
    2 test2
    3 test3
    4 test4
    5 test5UPDATE test SET sname='test6' WHERE id=3;
    SELECT * FROM test;
    ID SNAME
    1 test1
    2 test2
    3 test6
    4 test4
    5 test5DELETE FROM test WHERE sname='test6';
    SELECT * FROM test;
    ID SNAME
    1 test1
    2 test2
    4 test4
    5 test5INSERT INTO test VALUES (3,'test3');
    SELECT * FROM test;
    ID SNAME
    1 test1
    2 test2
    4 test4
    5 test5
    3 test3