2012-11-27 7 views
7

Ho le seguenti: querysTRA Versus> = e <= in DB2 SQL Query - Prestazioni

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 

Da queste due domande che interrogazione rendimenti migliori prestazioni.

Qui sto usando gli operatori> = e < = invece di BETWEEN.

Si prega di suggerire.

Grazie in anticipo.

+0

Si prega di evitare l'uso di 'BETWEEN' quando possibile, ed è in realtà di solito è meglio fare _exclusive_ limiti superiori (''<'') per gli intervalli, in particolare i tipi data/ora/timestamp (non si vuole davvero dover costruire microsecondi, vero?). –

risposta

7

Entrambi questi devono fornire esattamente lo stesso profilo di esecuzione, in base alla mia conoscenza di DB2/z (il prodotto LUW potrebbe essere diverso ma ne dubito).

Se si è veramente preoccupati, è necessario eseguire uno EXPLAIN sulle due query per vedere se ci sono delle differenze.

5

Tra è semplicemente una scorciatoia per> = e < =,

se vuole trovare maggiori informazioni vai al link è qui: Is the 'BETWEEN' function very expensive in SQL Server?

+5

Tranne che lo sta eseguendo su DB2, quindi una discussione su SQL Server non è necessariamente applicabile. Anche se in questo caso è probabilmente implementato allo stesso modo. –