8

次のクエリがあります。

SELECT ID, ADDRESS 
FROM EMPLOYEE A 
WHERE ID=12345 
AND CURRENT DATE BETWEEN A.EFF_DT AND A.EXP_DT 

SELECT ID, ADDRESS 
FROM EMPLOYEE A 
WHERE ID=12345 
AND CURRENT DATE >= A.EFF_DT AND CURRENT DATE <= A.EXP_DT 

これら 2 つのクエリのうち、どちらのクエリがより優れたパフォーマンスをもたらしますか。

ここでは、BETWEEN の代わりに演算子 >= と <= を使用しています。

提案してください。

前もって感謝します。

4

2 に答える 2

7

DB2/z に関する私の知識に基づいて、どちらもまったく同じ実行プロファイルを提供するはずです (LUW 製品は異なる可能性がありますが、私はそれを疑っています)。

本当に心配な場合は、2 つのクエリでEXPLAINを実行して、違いがあるかどうかを確認してください。

于 2012-11-27T04:47:58.917 に答える
5

Between は単に >= と <= の省略形です。

さらにヘルプが必要な場合は、次のリンクにアクセスしてください。「BETWEEN」関数は SQL Server で非常に高価ですか?

于 2012-11-27T04:55:08.937 に答える