Можене надеждно контролира в какъв ред Oracle извлича реда от таблица без ORDER BY
.
Освен това, без /*+APPEND*/
намек, Oracle ще съхранява редовете физически в купчина таблица, където има място, което може да не е в края на таблицата! Може да мислите, че Oracle ги вмъква последователно, но всяка DML или едновременна дейност (вмъкване на 2+ сесии) може да доведе до различна физическа организация.
Можете да използвате таблица INDEX ORGANIZED, за да съхранявате редовете в реда на PK. Повечето прости заявки след това в тази таблица ще произведат сортиран набор от редове. Това обаче няма да гарантира, че oracle ще избере редовете в този ред, ако не посочите ORDER BY (в зависимост от заявката и пътя за достъп редовете могат да идват в произволен ред).
Можете също да използвате изглед с поръчка от, това вероятно е най-добрият ви залог, ако не можете да докоснете приложението (преименувайте таблицата, създайте изглед с името на таблицата, оставете приложението да мисли, че запитва таблицата). Не знам дали е осъществимо във вашия случай.