Один программист тестирует и сравнивает одно и то же приложение, которое использует ту же структуру базы данных и одни и те же данные, только в двух отдельных базах данных: одна с Oracle 8 и одна с Oracle 9.
Приложение выполняет запрос без ORDER BY
предложения.
Он утверждает, что запрос ORDER-BY-less должен возвращать строки в одинаковом порядке в обеих базах данных.
Я говорю ему, что нет гарантии того же порядка строк, если вы не предоставите оговорку ORDER BY.
База данных имеет такие же индексы и ключи. Но план объяснения показывает, что в одной из баз данных механизм использует ключ одной из соединенных таблиц, тогда как в другой базе данных он использует ключ другой.
Он намекает, что две среды БД не равны, потому что они имеют разную статистику, разные движки rdbms и т. Д., Но не потому, что мне не удалось воспроизвести каждый индекс исходной базы данных.
Я говорю ему, что он должен четко изложить ORDER BY
оговорку, если порядок действительно так важен.
Вопрос
Так что я могу объяснить его лучше:
В каком порядке запрос извлекает строки, если вы не указали в явном виде предложение ORDER BY, и почему этот запрос не возвращает строки в том же порядке?