Tenemos una aplicación web en la cual los usuarios realizan consultas ad-hoc basadas en los parámetros que se han ingresado. También podría mencionar que el tiempo de respuesta es de gran importancia para los usuarios.¿Volvería a enviar este SQL simple para volver a trabajar?
La página web construye dinámicamente un SQL para ejecutar en función de los parámetros ingresados. Por ejemplo, si el usuario introduce "1" para "Unidad de Negocio" Construimos un SQL como esto:
SELECT * FROM FACT WHERE
BUSINESS_UNIT = '1'
--AND other criteria based on the input params
he encontrado que, cuando el usuario no especifica un BUSINESS_UNIT la siguiente consulta se construye
SELECT * FROM FACT WHERE
BUSINESS_UNIT LIKE '%'
--AND other criteria based on the input params
En mi humilde opinión, esto es innecesariamente (si no groseramente) ineficaz y garantiza el mal envío del código para la modificación, pero como tengo una tasa mucho más alta de envío de código para la reelaboración que otros, creo que puedo ganar una reputación como " demasiado quisquilloso."
Si esta es una pregunta inapropiada porque no es una codificación Q directa, avíseme y la eliminaré inmediatamente. ¡Estoy muy confundido si las preguntas subjetivas como esta están permitidas o no! Estaré viendo tus respuestas.
ty
Actualización:
estoy usando una base de datos Oracle.
Mi impresión es que Oracle no optimiza "LIKE '%'" eliminando la condición y que dejarla activa es menos eficiente. ¿Alguien podría confirmar?
Usted sabe quién más fue muy quisquilloso? MICHELANGELO. – Ken
Como puede ver en la respuesta de Womp, en esta situación no necesita enviar el código nuevamente, ya que la mayoría de los optimizadores de consultas SQL manejarán este ejemplo de manera eficiente. Sin embargo, tengo curiosidad sobre si el desarrollador * sabía * que se optimizaría de esa manera. –