Один програміст тестує та порівнює той самий додаток, який використовує ту саму структуру бази даних та ті самі дані, лише у двох окремих базах даних, одна з Oracle 8 та одна з Oracle 9.
Додаток виконує запит без ORDER BY
застережень.
Він стверджує, що запит "ЗАМОВЛЕННЯ" повинен повертати рядки в однаковому порядку в обох базах даних.
Я кажу йому, що немає жодної гарантії того ж замовлення рядка, якщо ви не надаєте чіткості пункту ORDER BY.
База даних має однакові індекси та ключі. Але план пояснення показує, що в одній із баз даних двигун використовує ключ однієї з об'єднаних таблиць, тоді як в іншій базі даних використовується інша.
Він наполягає на тому, що два оточення БД не рівні, тому що вони мають різну статистику, різні двигуни rdbms тощо, але не тому, що мені не вдалося скопіювати кожен індекс, який має оригінальна база даних.
Я кажу йому, що він повинен чітко передбачити, ORDER BY
якщо наказ дійсно такий важливий.
Питання
Тож я можу пояснити йому краще:
У якому порядку запит отримує рядки запиту, коли ви не чітко надаєте пункт ORDER BY, і чому цей запит не повертає рядки в тому ж порядку?