2

選択を例にとると、

select user_id, email_address
from users
     join email on users.id = email.user_id

これにより結果が得られます

ANDY   |  andy_one@foo-bar.com
ANDY   |  andy_two@foo-bar.com
JOE    |  joe_one@foo-bar.com
JOE    |  joe_two@foo-bar.com

順序が指定されていない場合、Andy と Joe の電子メールは結果でグループ化されることが保証されていますか? これらを結合して結果をストリーミングするアプリケーションを構築しています。order by 句を明示的に提供し、そのパフォーマンス ヒットを招く必要があるかどうかを知る必要があります。:)

4

1 に答える 1

4

ORDER BYいいえ。結果の順序を保証する唯一の方法は、句を明示的に指定することです。

ただし、 を追加しORDER BYても必ずしもパフォーマンスに影響するわけではありません。クエリ プランが順序付けられた結果を返す場合 (たとえば、インデックスから追い出しているため)、Oracle は余分な並べ替えを行う必要がないことを認識しています。

于 2013-02-20T04:46:21.153 に答える