Select en foxpro

Hola experto una consulta cual es la diferencia en hacer esta consulta con sql en fox 9:
- select cod_cm, fec_cm, tot_cm, cant_cd from compra inner join compra_det on alltrim(compra.cod_cm) = alltrim(compra_det.cod_cm) where alltrim(compra.cod_cm) == codigop into cursor temp
con esta otra consulta
- select cod_cm, fec_cm, tot_cm, cant_cd from compra inner join compra_det on compra.cod_cm =  compra_det.cod_cm where compra.cod_cm = codigop into cursor temp
con respecto a los "==" o al uso del alltrim, es decir si al uysarlos afecta su rendimiento o velocidad d ela consulta?
Gracias

1 respuesta

Respuesta
1
No sólo el rendimiento. Y eso habría que medirlo en milisegundos consultando varios miles de registros. Puede afectar la exactitud de tus datos obtenidos.
Altrim es la función que elimina los espacios a ambos lados de la cadena. Es decir que si tenemos " agua ", lo convierte en "agua" sin espacios. Entonces probando en la ventana de comandos:
? iif(" agua " = "agua","cierto","falso")
Devuelve falso.
?iif(ALLTRIM(" agua ") = "agua","cierto","falso")
Devuelve cierto.
Obviamente cuando se hacen múltiples ejecuciones altrim() sobre los registros en el Sql, se verá afectado el rendimiento, porque tendrá que convertir primero, luego comparar.
Por otro lado el operador  == devolverá cierto,solo cuando ambos operadores sean exactamente iguales. En este caso el rendimiento no es afectado.
En resumen: sólo si es estrictamente necesario usar alltrim para comparar úsalo. Sino obvialo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas