免責事項:以下はすべて逸話的であり、私の個人的な経験から直接引用されています。より経験的に厳密な分析を行うことを考えている人は誰でもそれを実行し、私がそうであれば反対投票することができます。SQLが宣言型言語であることも知っています。コードを記述するときにコードがどのように処理されるかを考慮する必要はありませんが、時間を重視しているので、そうしています。
論理的に等価なステートメントは無限にありますが、3つと思います。
ケース1:標準順序での2つの比較(評価順序は固定)
A> = MinBoundおよびA <= MaxBound
ケース2:構文糖(評価順序は著者が選択していません)
MinBoundとMaxBoundの間
ケース3:教育された順序での2つの比較(書き込み時に選択された評価順序)
A> = MinBoundおよびA <= MaxBound
または
A <= MaxBound AND A> = MinBound
私の経験では、ケース1とケース2はデータセットを知らないため、パフォーマンスに一貫したまたは顕著な違いはありません。
ただし、ケース3は実行時間を大幅に改善できます。あなたが大規模なデータセットで作業して起こるしている場合かどうかについて、具体的には、いくつかのヒューリスティックな知識を持っているAがより大きいことが多いですMaxBoundよりか小さいMinBoundあなたが比較をケース3を使用して注文して著しく実行時間を向上させることができますそれに応じて。
私が使用している1つのユースケースは、特定の間隔内のレコードについて、インデックス付けされていない日付を持つ大規模な履歴データセットをクエリすることです。クエリを作成するとき、指定した間隔の前または指定した間隔の後にさらにデータが存在するかどうかを確認し、それに応じて比較を並べ替えることができます。データセットのサイズ、クエリの複雑さ、および最初の比較でフィルタリングされたレコードの量に応じて、実行時間が半分に短縮されました。