Encuéntranos en Google+.

lunes, 8 de octubre de 2012

Re: Stored Procedures con parámetros

Nuestro compi de trabajo Angel Mario, en su blog, colgaba un artículo sobre como variar el uso de un montón de parámetros al condicionar una consulta de SQL.

Un montón de variables que se utilizarán para aplicar un filtro (where) a la consulta. Como ya lo mencionó en su artículo Stored Procedures con parámetros se genera un total de 2variaciones.

Para hacerle segundilla a su artículo ;P , tenemos una manera de caer ante ver  la situación.

Utilizando las mismas tablas y parámetros de la consulta del artículo, tenemos:


SELECT * FROM bibroloperador WHERE

(BibliotecaId = @BibliotecaId OR @BibliotecaId IS NULL)

AND 

(RolId = @RolId OR @RolId IS NULL)



Se evalúa si el parámetro coincide con el campo o si el parámetro es nulo. El hecho de utilizar el operador OR nos ayuda a que la condición siempre será verdadera. Por lo tanto podrá realizarse la consulta al evaluarse el operador AND, ya que las dos sentencias siempre serán verdaderas. Esto produce que solo muestre resultados basados en el valor de (los) parámetro(s) que no sea NULL.


Quizá deberíamos evaluar cual es la mas óptima. Ya sea con "Sql dinámico", como lo mostraba Angel Mario en su artículo o de la manera en que lo presentamos aquí...

Probando con la consulta que mostramos aquí y la del artículo mencionado, respectivamente:





...pero bueno, esto realmente no nos dice mucho. Tendríamos que probar con tablas un poco mas grandes, variar los campos con índices, realizar búsquedas con campos sobre texto, etc, etc.

El asunto es que es otra opción mas a evaluar =)



Vayámonos todos!

No hay comentarios:

Publicar un comentario