2012-11-27 11 views
7

Ich habe folgende querys:ZWISCHEN Versus> = und <= in DB2 SQL Query - Performance-

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 

Aus diesen beiden Abfragen die Abfrage eine bessere Leistung erbringt.

Hier verwende ich Operatoren> = und < = anstelle von BETWEEN.

Bitte vorschlagen.

Vielen Dank im Voraus.

+0

Bitte vermeiden Sie die Verwendung von 'BETWEEN', wann immer möglich, und es ist eigentlich normalerweise am besten _exclusive_ obere Grenzen (''<'') für Bereiche, insbesondere Datum/Zeit/Zeitstempel-Typen (Sie wollen nicht wirklich Mikrosekunden konstruieren müssen, oder?). –

Antwort

7

Beide sollten Ihnen genau das gleiche Ausführungsprofil geben, basierend auf meiner Kenntnis von DB2/z (das LUW-Produkt kann anders sein, aber ich bezweifle es).

Wenn Sie wirklich besorgt sind, sollten Sie eine EXPLAIN auf die zwei Abfragen ausführen, um zu sehen, ob es Unterschiede gibt.

5

Zwischen ist einfach eine Abkürzung für> = und < =,

wenn auf den Link weitere Hilfe finden will, ist hier: Is the 'BETWEEN' function very expensive in SQL Server?

+5

Außer dass er dies unter DB2 ausführt, ist eine Erörterung von SQL Server nicht unbedingt erforderlich. Obwohl es in diesem Fall wahrscheinlich genauso implementiert ist. –